[英]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.