繁体   English   中英

如何使用“ where in”子句

[英]how to use “where in” clause

我有这些模型:

class AgencyPosition(models.Model):
   Agency=models.ForeignKey(Agency)
   Users=models.ManyToManyField(User)
   PositionTypeCode=models.ForeignKey(PositionType)
   PhoneNumber=models.CharField(max_length=50)
   Email=models.CharField(max_length=50)
   StatusTypeCode=models.ForeignKey(StatusType)

class News(models.Model):
   Category=models.ForeignKey(Category)
   Title=models.CharField(max_length=100)
   Description=models.TextField()
   created_by=models.ForeignKey(User,editable=False)
   ActionDate=models.DateTimeField(auto_now=True,editable=False)

我想在用户输入代理机构的名称时选择属于特定代理机构的前5条新闻。新闻模型具有created_by字段。created_by字段是在NewsAgentPosition中插入News.s的用户,我确定用户属于哪个代理机构。

我在views.py中这样做:

agn=Agency.objects.filter(Name=key)
AgencyPositionList=AgencyPosition.objects.filter(Agency=agn)

现在我拥有来自特定代理商的所有用户。那么,我想选择“新闻”,指出他们的Created_by字段适用于该特定代理商。类似此伪代码的内容:

select top 5 * from News where created_by in(AgencyPositionList.Users)

我怎样才能做到这一点?

News.objects.filter(created_by__in = AgencyPositionList.Users)[:5] 这些都记录在案

尝试这个:

News.objects.filter(created_by__agency_position__id=your_agency_id)[:5]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM