Django GenericTabularInline根本不起作用,但模型是正确的

Bar*_*tek 5 django django-admin

我刚刚将我的一个模型转换为使用通用外键.模型正在使用这些,数据库正在报告正确的值,我所拥有的API与新的外键完美配合,零变化(保持相同的字段名称).

但是,管理员完全失败了.Inline显示没有数据,尽管有一些(见上文).这是我的型号代码:

class CartItem(models.Model):
    cart = models.ForeignKey(Cart)
    quantity = models.PositiveIntegerField()
    price_item = models.DecimalField(max_digits=19, decimal_places=2)
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField(db_column="shop_item_id")
    shop_item = generic.GenericForeignKey("content_type", "object_id")
Run Code Online (Sandbox Code Playgroud)

相当直截了当吧?admin.py看起来像这样:

class CartItemInline(generic.GenericTabularInline):
   model = CartItem 

class CartAdmin(admin.ModelAdmin):
   inlines = [
        CartItemInline,
   ]
Run Code Online (Sandbox Code Playgroud)

有趣的事实.如果我将'shop_item'添加到内联类中的字段元组,我会收到此错误:

'CartItemInline.fields'指的是表单中缺少的字段'shop_item'.

但是......它在那里?我已经尝试了一切,30分钟后,我只是放弃了最有可能解决问题的极其简单的问题,我的眼睛今天根本看不到.:(

所有这些在使用GenericForeignKey之前都有效,所以不确定问题是什么.

谢谢你的帮助.

die*_*rre 0

嗯……也许

admin.site.register(CartItem, CartItemAdmin)
Run Code Online (Sandbox Code Playgroud)

在admin.py的末尾?

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#using-generic-relations-as-an-inline

我想这是因为你说“内联没有显示数据”所以我猜你没有注册它。我知道这听起来很愚蠢,但这就是我的想法。