Я хочу установить начальное значение в форме профиля.
Модель профиля имеет отношение OneToOne с моделью пользователя.
Я получаю следующую ошибку при установке начального поля в init метод,
Объект 'ForwardOneToOneDescriptor' не имеет атрибута 'email'
Трассировка
Файл"/home/drogon/Crowdsocial_project/venv_ubuntu/lib/python3.6/site-packages/django/core/handlers/exception.py" во внутреннем 34. response = get_response (запрос)
File "/ home/drogon/Crowdsocial_project/venv_ubuntu/lib/python3.6/site-packages/django/core/handlers/base.py "в _get_response 126. response = self.process_exception_by_middleware (e, request)
File" /home / drogon / Crowdsocial_project / venv_ubuntu / lib / python3.6 / site-packages / django / core / handlers / base.py "в _get_response 124. response = wrapped_callback (запрос, * callback_args, ** callback_kwargs)
Файл "/ home / drogon / Crowdsocial_project / venv_ubuntu / lib / python3.6 / site-packages / django / views / generic / base.py "в представлении 68. вернуть self.dispatch (request, * args, ** kwargs)
File" / home / drogon / Crowdsocial_project /venv_ubuntu / lib / python3.6 / site-packages / django / views / generic / base.py "в отправке 88. обработчик возврата (request, * args, ** kwargs)
File" / home / drogon/Crowdsocial_project/venv_ubuntu/lib/python3.6/site-packages/django/views/generic/edit.py "в get 190. return super (). Get (request, * args, ** kwargs)
Файл "/home/drogon/Crowdsocial_project/venv_ubuntu/lib/python3.6/site-packages/django/views/generic/edit.py" в get 133. return self.render_to_response (self.get_context_data ())
Файл "/home/drogon/Crowdsocial_project/users/views.py" в get_context_data 90. context = super (ProfileSettingsView, self) .get_context_data (** kwargs)
File "/ home / drogon /Crowdsocial_project / venv_ubuntu / lib / python3.6 / site-packages / django / views / generic / edit.py "в get_context_data 66. kwargs ['form'] = self.get_form ()
Файл "/home/drogon/Crowdsocial_project/venv_ubuntu/lib/python3.6/site-packages/django/views/generic/edit.py" в get_form 33. return form_class (** self.get_form_kwargs ())
Файл "/home/drogon/Crowdsocial_project/users/forms.py" в init 144. self.initial ['profile_email'] = Profile.user.email
ИсключениеТип: AttributeError at / users / 12 / profile / settings Исключение Значение: у объекта 'ForwardOneToOneDescriptor нет атрибута' email '
Модель профиля
class Profile(models.Model):
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, null=True, blank=True)
full_name = models.CharField(max_length=30, null=True, blank=True)
Форма профиля
class ProfileSettingsForm(forms.ModelForm):
full_name = forms.CharField(required=False,
widget=forms.TextInput(attrs={'readonly': 'readonly'}))
profile_email = forms.CharField(required=False,
widget=forms.TextInput(attrs={'readonly': 'readonly'}))
def __init__(self, *args, **kwargs):
super(ProfileSettingsForm, self).__init__(*args, **kwargs)
self.initial['profile_email'] = Profile.user.email
self.initial['full_name'] = Profile.user.name
class Meta:
model = Profile
fields = ['image','full_name','biography','profile_email','linked_in','facebook',
'twitter','phone','education']