【发布时间】:2020-09-01 09:23:37
【问题描述】:
我有两个 django 模型:
class Order(models.Model):
date = models.DateTimeField()
customer = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name='orders')
shipping_address = models.CharField(max_length=200)
phone_number = models.CharField(max_length=9)
comment = models.CharField(max_length=100, blank=True, null=True)
class OrderStatus(models.Model):
STATUS_ACCEPTED = 1
STATUS_PROCESSING = 2
STATUS_DELIVERING = 3
STATUS_COMPLETED = 4
CODE_CHOICES = (
(STATUS_ACCEPTED, 'accepted'),
(STATUS_PROCESSING, 'processing'),
(STATUS_DELIVERING, 'delivering'),
(STATUS_COMPLETED, 'completed'),
)
date_created = models.DateTimeField(auto_now_add=True)
code = models.PositiveSmallIntegerField(choices=CODE_CHOICES)
order = models.ForeignKey(Order, on_delete=models.CASCADE, related_name='status_list')
通常,如果我想获得所有处于“已接受”状态的订单,我可以编写 Order.objects.filter(orderstatus__code=1)。
但是如何让 django 管理员创建 OrderStatus 列表过滤器?
我在 Google 上搜索了很多,但在 stackoverflow 上只找到了一个答案,它声称只需将反向模型(在我的情况下为“orderstatus”)添加到 list_filter 元组应该可以工作,但我收到一条错误消息:The value of 'list_filter[1]' refers to 'orderstatus', which does not refer to a Field.
我做错了什么?
【问题讨论】:
标签: django filter django-admin