[英]How can I list all foreign key related objects in Django admin panel?
[英]Django - how can i filter a list of objects checking a foreign key attribute?
首先,抱歉我的英語不好。
我必須過濾查詢,但使用外鍵屬性。 我有一個WorkOrder模型,還有其他與訂單移動有關的模型。
這是模型
class OrderMovements(models.Model):
workorder = models.ForeignKey(
WorkOrder,
verbose_name=_('order'),
)
status = models.IntegerField(
choices=FULL_CHOICES,
default=1,
verbose_name=_('status'),
)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
就像您看到一個工作訂單可以有很多變動一樣,我需要做的查詢集是一個查詢,該查詢采用了最后10個工作訂單,這些訂單的OrderMovement的狀態為3或4,包含在該工作訂單的任何變動中。
我真的不知道該怎么做。
希望你能理解我。
謝謝!
與往常一樣,您從要獲取的模型開始,並通過雙下划線關注關系。
WorkOrder.objects.order_by('-timestamp').filter(ordermovements__status__in=[3, 4])[:10]
首先使用related_name
輕松執行反向關系查找
class OrderMovements(models.Model):
workorder = models.ForeignKey(
WorkOrder,
related_name='ordermovements',
verbose_name=_('order'),
)
// rest code
然后,您可以查詢工作單,並使用related_name進行反向關系過濾。
另外,您還要求distinct
以避免重復
您的查詢應為:
WorkOrder.objects.order_by('-timestamp').filter(
ordermovements__status__in=[3, 4]).distinct('-timestamp')[:10]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.