Django. Использование fields для CreateView для моделей с OneToOneField

Пытаюсь создать пользователя с помощью функции CreateView, имея следующую модель:

models.py

class UserProfileInfo(models.Model):
    user                = models.OneToOneField(User,
                                models.DO_NOTHING)
    phone_number_c      = PhoneNumberField(null=False,
                                        blank=False,
                                        unique=True,
                                        verbose_name="Номер телефона")
    phone_show_b        = models. BooleanField(verbose_name="Показывать номер телефона")

view.py

class UserProfileInfoCreateView(CreateView):
    fields = ('user.first_name','user.last_name','phone_number_c')

При этом выходит ошибка: Unknown field(s) (user.first_name, user.last_name) specified for UserProfileInfo


Ответы (1 шт):

Автор решения: MilkyWay

Либо Вы привели не полный код либо Ваш класс ни чего не знает о модели с которой работает.

class UserProfileInfoCreateView(CreateView):
    model = UserProfileInfo
    #Общее правило. Для обращения к связанным моделям используется '__'
    fields = ['user__first_name','user__last_name','phone_number_c']
    #fields это картеж

Подробнее о классе CreateView см. официальную документацию https://docs.djangoproject.com/en/3.0/ref/class-based-views/generic-editing/#django.views.generic.edit.CreateView .

→ Ссылка