GenericTabularInline没有返回我的Django管理中应该返回的内容

2024-10-02 02:42:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下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对象(它可以有产品或外部服务的键),后跟其数量字段。相反,它表示item_relation字段未知:

FieldError at /admin/product/order/13/
Unknown field(s) (item_relation) specified for OrderItem

我怎么绕过这个?你知道吗

PS:我也尝试过使用我自己的ModelForm,但是它仍然不能识别item_relation字段。你知道吗

PS1:如果我没有在OrderItemInlineAdmin中定义一个fields变量,我会得到这样的结果,这是不正确的,因为我有现有的OrderItem对象,而这假设我没有(没有选择对象,也没有数量?):not what I need


Tags: 对象idfieldmodelobjectadminmodelstype

热门问题