2

我有以下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 对象,并且假设我没有(没有选择对象并且没有数量?):不是我需要的

4

0 回答 0