Заказ поля «многие ко многим» в Django Admin - PullRequest
7 голосов
/ 02 сентября 2010

Вот мои настройки:

from django.contrib.auth.models import User

class Product(models.Model):
   ...
   email_users = models.ManyToManyField(User, null=True, blank=True)
   ...

[в другом месте]

class ProductAdmin(admin.ModelAdmin):
   list_display = ('name','platform')

admin.site.register(Product, ProductAdmin)

Моя главная проблема заключается в том, что при просмотре страницы «Продукт» в разделе администратора пользователи электронной почтыпо умолчанию их не упорядочивают по их идентификатору, и я бы хотел, чтобы они упорядочивались по их имени пользователя.

Из того, что я прочитал до сих пор, кажется, что мне нужно добавить:

   email_users.admin_order_field = 'xxxx'

Но я не совсем уверен, каков синтаксис для доступа к имени пользователя.

1 Ответ

3 голосов
/ 03 сентября 2010

Ответ был упомянут в комментарии Хао Ляня выше, по сути, это то, что нужно было сделать:

class ProductAdminForm(ModelForm):
   email_users = forms.ModelMultipleChoiceField(queryset=User.objects.order_by('username'))

   class Meta:
      model = Product

class ProductAdmin(admin.ModelAdmin):
   list_display = ('name','platform')
   form = ProductAdminForm

admin.site.register(Product, ProductAdmin)

Мой немного отличался в том смысле, что мне требовались формы .ModelMultipleChoiceField, тогда как в ответе использовались используемые формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...