为Django外键字段显示超过'__str__'

时间:2013-06-04 17:40:56

标签: django django-admin foreign-keys

我有两个简单的Django模型类,

models.py

from django.db import models

class ParentModel(models.Model):
    small_text = models.CharField(max_length=20)
    big_text = models.CharField(max_length=500)

    def __str__(self):
        return self.small_text


class ChildModel(models.Model):
    parent = models.ForeignKey(ParentModel)

    def __str__(self):
        return '%s is my parent' % self.parent

admin.py

from django.contrib import admin
import models

admin.site.register(models.ChildModel)
admin.site.register(models.ParentModel)

因此,默认视图是您在admin部分的select元素中看到'small_text'。我希望能够做的是扩展它,以便在选择下面有另一个TextArea或其他我可以选择的东西,当你选择一个不同的爸爸时会改变。

我已经研究了几种不同的方法来实现这一点,但是对于Django而言,它们似乎都很复杂,我认为应该是一件容易的事。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您希望在管理员中查看ParentModel时能够更改ChildModel的属性,则应考虑使用inline in the admin

如果您希望在管理员中查看模型的索引页面时显示其他字段,则您需要在模型的管理类的list_display属性中添加其他属性。