我有以下models.py
文件:
class Product(Model):
...
class ExtraService(Model):
...
class Order(Model):
...
class OrderItem(Model):
order = models.ForeignKey(verbose_name=_('Order Item'), to=Order)
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
item_relation = GenericForeignKey('content_type', 'object_id')
quantity = models.PositiveIntegerField(verbose_name=_('Quantity'), default=0)
我正在admin.py
这样工作:
class OrderItemInlineAdmin(GenericTabularInline):
model = OrderItem
min_num = 0
extra = 0
fields = ('item_relation', 'quantity',)
ct_field = 'content_type'
ct_fk_field = 'object_id'
class OrderAdmin(admin.ModelAdmin):
list_display = ('user_form',)
inlines = (OrderItemInlineAdmin,)
admin.site.register(Order, OrderAdmin)
我无法让我的管理员在我的 Order 对象中显示 OrderItem 对象内联(它可以有一个 Product 或 ExtraService 的键),然后是它的数量字段。相反,它说该item_relation
领域是未知的:
FieldError at /admin/product/order/13/
Unknown field(s) (item_relation) specified for OrderItem
我该如何绕过这个?
PS:我也尝试过使用我自己的 ModelForm 但它仍然无法识别该item_relation
字段。
PS1:如果我没有在 中定义字段变量OrderItemInlineAdmin
,我最终会得到这样的结果,这是不正确的,因为我有现有的 OrderItem 对象,并且假设我没有(没有选择对象并且没有数量?):