python - 如何在 Django Admin.py 中按顺序显示 OrderItem
问题描述
我试图orderitemsadmin
在orderadmin
使用 TabularInline 中显示,但我不断收到以下错误。
AttributeError: 'OrderItemAdmin' object has no attribute 'urls'
这是一个 Django 电子商务项目,我正在努力帮助管理员查看订单及其商品。
我认为错误的原因是我无法设置与 OrderItem 和 Order 的外部关系,因为顺序是:Orderitem 与 Item 具有外部关系,而 Order 与 OrderItem 具有多对多关系,如果切换了它们的位置或序列它会弄乱多对多关系。
这是 admin.py
class OrderItemAdmin(admin.TabularInline):
list_display = ['item', 'quantity', 'ordered']
model = OrderItem
class OrderAdmin(admin.ModelAdmin):
list_display = ['user', 'ordered', 'ordered_date', 'coupon', 'payment', 'shipping_address', 'status',
'refund_requested', 'refund_granted', 'ref_code']
inlines = [
OrderItemAdmin,
]
admin.site.register(Order, OrderAdmin)
这是models.py
class OrderItem(models.Model):
item = models.ForeignKey(Item, on_delete=models.CASCADE)
class Order(models.Model):
items = models.ManyToManyField(OrderItem)
解决方案
你需要删除
admin.site.register(OrderItem, OrderItemAdmin)
这条线。内联只能在 modelAdmin 中使用,这就是您收到该错误的原因。
推荐阅读
- wordpress - Wordpress REST API 无法发表评论
- delphi - TFDQuery 无法更新?
- react-native - React Native - 锁定设备屏幕上的原生音频播放器
- java - 如何选择正确的方式在 Java 中获取相关上下文?
- c++ - boost tcp 接受器的 cancel() 方法是否会取消在不同 io_context 上工作的套接字上的操作?
- visual-studio-code - 根据给定版本的 Visual Studio Code 检查是否存在更新的 URL 是什么
- python - 提取具有最频繁值的行
- java - 为什么保存方法需要使用已经存在的EntityManager?
- image - Rails Assets,可以在生产模式下预编译和非编译吗?
- python-3.x - 模块'pygame.locals'没有'QUIT' Python 3.8.2 Pygame