我有两个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上只找到了一个答案,它声称只需向list_filter元组添加反向模型(在我的情况下为'orderstatus')就可以了,但是我收到一条错误消息:The value of 'list_filter[1]' refers to 'orderstatus', which does not refer to a Field.
< / p>
我在做什么错了?
答案 0 :(得分:0)
在这里发布问题之前,您是否尝试过自己,因为有很多与此问题相关的问题,所以我认为此链接可以为您提供帮助。
https://books.agiliq.com/projects/django-admin-cookbook/en/latest/many_to_many.html
答案 1 :(得分:0)
The value of 'list_filter[1]' refers to 'orderstatus', which does not refer to a Field.
这是因为orderstatus
不是模型中的字段。将order
字段更改为orderstatus
或将传递给list_filter
的名称更改为您的字段名称。