0

我想在 django-admin 中使用查询集(查询集来获取所有对象。根据实现的查询集,我想显示查询集的某些属性以供查看。例如,我想显示此人的 id、此人的父母、此人的父母姓名、电子邮件等。

Django 文档中提供的示例是:

class MyModelAdmin(admin.ModelAdmin):
    def queryset(self, request):
        qs = super(MyModelAdmin, self).queryset(request)
        if request.user.is_superuser:
            return qs
        return qs.filter(author=request.user)

我肯定想改进这一点。

我尝试过这样的事情:

class ChildParentAdmin(admin.ModelAdmin):
    list_display = ('displayname', 'StudentID',)
    search_fields = ['displayname',]

    def queryset(self, request):
        qs = super(MyModelAdmin, self).queryset(request)
    def StudentID(self,queryset):
        for student in queryset:
            return student.pk

我的重点是如何使用查询集并执行进一步的操作,例如获取每个孩子的 id、每个孩子的父母姓名等等......想要一些关于这样做的指导。非常感谢任何这方面的帮助..谢谢...

4

1 回答 1

0
def StudentID(self, obj):
  return '%s' % obj.pk
StudentID.short_description = 'StudentID'
def Student_Name(self, obj):
    return '%s' % obj.name

这是正确的做法。您不必查询查询集中的所有对象。只需要传递obj。它将为所有对象运行它。还有其他方法可以做到这一点,不涉及类本身。要了解更多信息,请查看 list_display Django Admin。例子很清楚。

于 2012-08-27T07:02:11.173 回答