добавлять поля к модели из другой, связанной с отношением OneToOneField или ForeignKey

Вопрос: Я новичок в django, и я использую версию 1.11 У меня несколько моделей, связанных с внешними ключами, а некоторые - с отношением oneToOne. например, модели пользователя и профиля, я хотел бы добавить поля формы профиля из формы пользователя как? Для oneToOne у меня есть модель администратора с полем oneToOne, связанным с пользовательской моделью. но

Вопрос:

Я новичок в django, и я использую версию 1.11
У меня несколько моделей, связанных с внешними ключами, а некоторые – с отношением oneToOne.
например, модели пользователя и профиля, я хотел бы добавить поля формы профиля из формы пользователя
как?
Для oneToOne у меня есть модель администратора с полем oneToOne, связанным с пользовательской моделью. но не только администратор, у меня есть несколько типов пользователей (admin, writer, commetator,…) каждый в другой модели, и при создании одного типа я также создаю связанного с ним пользователя, поэтому, когда я получаю доступ к форме записи в admin, я создаю администратор, но я также хочу иметь поле модели пользователя, чтобы создать как из формы записи
в AdminAdmin, то есть: модель администратора, я бы хотел добавить поля пользователя в форме, отображаемой в шаблоне администратора

from django.contrib import admin from .models import User, Admin class UserInline(admin.StackedInline): model = User fields = [‘username’, ‘first_name’, ‘last_name’] class AdminAdmin(admin.ModelAdmin): model = Admin list_display = [‘getUsername’] inlines = [UserInline] def getUsername(self, obj): return obj.user.username getUsername.short_description = «Nom d’utilisateur» admin.site.register(Admin, AdminAdmin)

этот код генерирует ошибку “: (admin.E202) ‘common.User’ не имеет ForeignKey для ‘common.Admin’.”

Ответ №1

С помощью этой настройки:

Class A(models.Model): # … nameField = models.CharField(max_length=100, …) # … pass Class B(models.Model) # … fk = models.ForeignKey(A) # … Class C(models.Model): # … oto = models.OneToOneKeyField(A)

Вы не можете получить доступ к полю реальной модели с помощью ForeignKey + __ + FieldName. Например, вы можете получить доступ к полю имени модели из связанных моделей с помощью:

В

‘fk__name’

С

‘oto__name’

Оцените статью
Добавить комментарий