Django - 按admin中的userprofile字段排序

时间:2010-12-31 17:18:28

标签: python django django-models django-admin

由于你们的帮助,我想出了如何将UserProfile信息显示在我的管理员字段中。现在我想想出一种正确排序这些字段的方法。我很亲密。

class EmployerProfileAdmin(UserAdmin):
    inlines = [EmployerProfileInline, ]
    def company(self):
        return self.get_profile().company
    company.admin_order_field = 'employerprofile'
    list_display = ('username','first_name','last_name',company,'email','password',)

这让我从我的UserProfile(EmployerProfile)中对公司字段进行排序,但我必须根据用户中的字段对其进行排序。用户有'雇主资料',但这是一个完整的对象。 django如何知道如何对该领域进行排序?是否可以在EmployerProfile类中覆盖它?

谢谢!

2 个答案:

答案 0 :(得分:1)

正如Honza所说,你想要点什么?

通常,管理员更改列表页面中的顺序将遵循模型的默认顺序,或者可以由ModelAdmin.ordering指定为列表或元组。

答案 1 :(得分:1)

也许您可以尝试使用model__field方法? 正如其他人所说,我们不知道整个问题,但

class Meta:
    ordering = [ "user__fieldname" ]

可能有效(未经测试)。如果您有一个“user”字段,它是ForeignKey,并且字段名存在于外部模型中。

类似于:

class User( object ):
    fieldname = models.CharField( max_length = 255 )

class Profile( object )
     class Meta:
         ordering = [ "user__fieldname" ]
     user = models.ForeignKey( User )