【发布时间】:2013-11-17 10:26:09
【问题描述】:
您好,我正在尝试在 django admin 中自定义我的内联。
这是我的模型:
class Row(models.Model):
name = models.CharField(max_length=255)
class Table(models.Model):
rows = models.ManyToManyField(Row, blank=True)
name = models.CharField(max_length=255)
def __unicode__(self):
return self.name
和我的管理员:
class RowInline(admin.TabularInline):
model = Table.rows.through
fields = ['name']
class TableAdmin(admin.ModelAdmin):
inlines = [
RowInline,
]
exclude = ('rows',)
但是我得到这个错误
在 /admin/table_app/table/1/ 处配置不正确
'RowInline.fields' 指的是从 表格。
这怎么可能?
【问题讨论】:
-
将
model = Table.rows.through更改为model = Row -
不起作用行没有表的外键
-
我遇到了完全相同的问题。我添加了一个赏金,希望能得到更多关注。
-
RowInline类将其模型指定为Table.rows.through(Table.rows多对多关系的自动生成的中间模型),然后请求其name字段 - 但中间模型没有这样的字段,它只有两个外键:一个到Table(命名为from_)和一个到Row(命名为to)。TabularInline(或实际上任何*Inline类)将无法满足您的需求;您可能需要实现自定义子类。 -
我在这里提出了一个更符合我正在做的事情的更新问题:stackoverflow.com/questions/21562645/…
标签: python django django-forms django-admin django-1.5