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