поля данных внешнего ключа администратора django добавить - PullRequest
22 голосов
/ 27 июня 2011

В форме добавления для любого приложения в администраторе django, для полей внешнего ключа этой модели ... появляется раскрывающийся список с кнопкой добавления (которая открывается во всплывающем окне). Можем ли мы иметь форму, в которую мы можем добавить поля модели внешнего ключа в той же форме.

Например,

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    contact = models.ForeignKey(Contact, blank=True, null=True)

Для полей пользователя и контакта в форме добавления администратора есть выпадающий список с кнопкой добавления. Можем ли мы иметь все поля пользователя и контакта на одной странице ??

Ответы [ 2 ]

14 голосов
/ 27 июня 2011

Да, вы можете сделать это с помощью встроенной системы администратора.

class UserAdmin(admin.StackedInline):
    model = User
class ContactAdmin(admin.StackedInline):
    model = Contact

class UserProfileAdmin(admin.ModelAdmin):
    inlines = [ UserAdmin, ContactAdmin ]

для более подробной информации проверьте https://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects ,

3 голосов
/ 15 сентября 2016

Существует дополнение django для получения встроенных строк в подобных случаях, когда отношения противоположны обычным: django_reverse_admin

Вам нужно добавить django_reverse_admin в ваши требования. Txt:

-e git+https://github.com/anziem/django_reverse_admin.git#egg=django_reverse_admin

Затем импортируйте его:

admin.py

from django_reverse_admin import ReverseModelAdmin

class UserProfileAdmin(ReverseModelAdmin):
    inline_reverse = ['user', 'contact']
    inline_type = 'tabular'  # or could be 'stacked'

admin.site.register(UserProfile, UserProfileAdmin)
...