如何查看 Django 模型在 admin 中有多少关系



我想显示一个对象在 Django 管理中有多少关系。

假设我有以下模型:

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    question = models.ForeignKey(Question)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

我想在民意调查问题旁边的管理员 (list_display) 中显示有选择的数量。有没有办法向类Question添加一个函数,该函数将返回它有多少个选择?

编辑

这是一个假设的模型。我正在使用带有文件存储的模型,并想计算有多少文件连接到"主"模型,或者在这种情况下,连接到Question类。

list_display 选项允许您在ModelAdmin本身上指定要显示为列的函数。您甚至不需要在Question模型上定义该函数,如果您只需要它用于您的ModelAdmin

来自list_display的文档:

class PersonAdmin(admin.ModelAdmin):
    list_display = ('upper_case_name',)
    def upper_case_name(self, obj):
        return ("%s %s" % (obj.first_name, obj.last_name)).upper()
    upper_case_name.short_description = 'Name'

list_display属性中指定的函数将使用单个参数调用:正在显示的对象。您可以使用反向关系上的RelatedManager.count获取其相关实例的计数:

return obj.choice_set.count()

相关内容

  • 没有找到相关文章

最新更新