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 .