добавление виджета «многие ко многим» для администратора django - PullRequest
0 голосов
/ 19 мая 2011

В документации администратора django говорится следующее:

По умолчанию виджеты администратора для отношений «многие ко многим» будут отображаться на любой модели, содержащей фактическую ссылку на ManyToManyField.

Есть ли способ заставить подобный виджет появляться на странице администратора для другой модели, той, где отношения не определены?

1 Ответ

0 голосов
/ 19 мая 2011

Есть несколько разных способов получить эффект, который вам нужен.

Вот один из способов, который даст вам аналогичный (но не идентичный) эффект и, вероятно, потребует наименьшего количества кода.(Примеры будут использовать классы A и B, предполагая, что первое имеет явно определенное отношение «многие ко многим»)

Самый быстрый способ: вы можете использовать объект InlineModelAdmin:

class AInline(admin.TabularInline):
    model = A

class BAdmin(admin.ModelAdmin):
    inlines = (AInline,)
admin.site.register(B, BAdmin)

Если вам нужен точный эффект получения <select multiple>, вы можете использовать собственный класс Form и присвоить ему BAdmin.form.

...