Данные поля выбора роли не сохраняются для формы UserRegsitrationForm django
После отправки формы SignUpform появляется следующее сообщение об ошибке:
У объекта 'NoneType' нет атрибута '_inc_path' Эта проблема связана с полем выбора роли в моей модели CustomUser. Модели прекрасно функционируют без поля выбора роли, и все формы отображаются и сохраняются правильно. Я подозреваю, что моя форма с полем выбора не передает/сохраняет корректно входные значения в модель CustomUser.
Любой вклад будет высоко оценен.
Models.py:
class CustomUser(AbstractUser):
display_name = models.CharField(verbose_name=("Display name"), max_length=30, help_text=("Will be shown e.g. when commenting"))
...
country = CountryField(blank=True, null=True)
...
role = models.CharField(choices = ROLES, max_length = 50, default = "regular_user",)
...
class Meta:
ordering = ['last_name']
def get_absolute_url(self):
return reverse('account_profile')
def __str__(self):
return f"{self.username}: {self.first_name} {self.last_name}" ```
forms.py:
class SignupForm(forms.Form):
first_name = forms.CharField(max_length=30, label=_("First name"))
last_name = forms.CharField(max_length=30, label=_("Last name"))
display_name = forms.CharField(max_length=30, label=_("Display name"), help_text=_("Will be shown e.g. when commenting."))
role = forms.ChoiceField(choices = ROLES, label="Role", initial='Regular_user', widget=forms.Select(), required=True)
def signup(self, request, user):
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.display_name = self.cleaned_data['display_name']
user.role = self.cleaned_data['role']
user.save()
users/create.html:
{% extends "wagtailusers/users/create.html" %}
{% block extra_fields %}
...
{% include "wagtailadmin/shared/field_as_li.html" with field=form.role %}
...
{% endblock extra_fields %}
settings.py:
AUTH_USER_MODEL = 'userauth.CustomUser'
WAGTAIL_USER_CREATION_FORM ='userauth.forms.WagtailUserCreationForm'
WAGTAIL_USER_EDIT_FORM = 'userauth.forms.WagtailUserEditForm'
WAGTAIL_USER_CUSTOM_FIELDS = ['display_name',... 'role', ...]
ACCOUNT_SIGNUP_FORM_CLASS = 'userauth.forms.SignupForm' ```
Похоже, что данные дерева страниц в вашей базе данных стали непоследовательными, что привело к сбою при создании новой ArticleIndexPage. (В частности, запись для 'домашней' страницы показывает, что у нее есть дочерние страницы, что означает, что для поиска правильной позиции для новой страницы необходимо просмотреть записи дочерних страниц - но когда он пытается получить эти дочерние страницы, ни одна из них не возвращается). Это могло произойти из-за предыдущей ошибки, возникшей на пути создания или удаления страницы.
Чтобы исправить это, выполните: ./manage.py fixtree