Django - сортировка по полю userprofile в админке - PullRequest
3 голосов
/ 31 декабря 2010

Я понял, как получить информацию 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), но мне нужно отсортировать его в соответствии с полем в User. У пользователя есть «Employerprofile», но это целый объект. Как django знает, как сортировать на этом поле? Это то, что я могу перезаписать в классе EmployerProfile?

Спасибо!

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Возможно, вы могли бы попробовать использовать подход «модель ___ поля»?Как говорят другие, мы не знаем всей проблемы, но

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 )
1 голос
/ 18 января 2011

Как сказал Хонза, что вы пытаетесь заказать?

Как правило, порядок на странице списка изменений администратора будет соответствовать порядку модели по умолчанию или может быть указан ModelAdmin.ordering в виде списка или кортежа.

...