【发布时间】:2011-08-06 10:39:05
【问题描述】:
我通过TabularInline 在 Django 的管理员中列出了一个模型。在这个内联中,我想使用 Django 的模型遍历语法来列出通过外键从这个模型引用的其他模型中的数据。例如
class MyRelatedModel(models.Model):
name = models.CharField(max_length=50)
created = models.DateField(auto_now_add=True)
other = models.ForeignKey('MyOtherRelatedModel')
class MyOtherRelatedModel(models.Model):
name = models.CharField(max_length=50)
created = models.DateField(auto_now_add=True)
class MyRelatedModelInline(admin.TabularInline):
model = MyRelatedModel
fields = ['name', 'created', 'other__name']
#readonly_fields = ['name', 'created', 'other__name']
但是,使用 'other__name' 会引发 ImproperlyConfigured 错误:
'MyRelatedModelInline.fields' refers to field 'other__name' that is missing from the form
ModelAdmin 实例不支持模型遍历语法吗?如果支持,我做错了什么?
编辑:如果我取消注释 readonly_fields,错误变为:
Caught AttributeError while rendering: 'MyMainModelAdmin' object has no attribute '__name__'
【问题讨论】:
-
查看我对该问题的回答。
-
@Roseman,不,这是一个不同的问题。查看我的编辑。
-
出于某种原因,人们似乎对我对该问题的回答有疑问。很简单:定义一个返回值的方法(使用标准点语法)并在readonly_fields 中使用该方法的名称。这行得通。
标签: python django django-admin