У меня есть пользовательская модель Django 'es_user', которая наследует пользовательскую модель Django по умолчанию.когда пользователь регистрируется, он работает нормально, но этот пользователь будет частью «Users», и ничто не добавит до es_user.поэтому каждый раз, когда пользователь регистрируется, я должен зайти в админ-панель и добавить зарегистрированного пользователя 'user' в 'es_user'.
Итак, чтобы решить, что я добавил эти 2 в строки в представлениях.py
es_user_instance = es_user.objects.create(user= req_user)
es_user_instance.save()
, которая дает мне эту ошибку
ValueError at /signup/
Cannot assign "<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f9c787b9be0>>": "es_user.user" must be a "User" instance.
models.py
class es_user(models.Model):
user = models.OneToOneField(User,related_name='es_user', on_delete=models.CASCADE)
просмотров.py
def signup(request):
signup_form_instance = SignUpForm()
if request.method == "POST":
signup_form_instance = SignUpForm(request.POST)
if signup_form_instance.is_valid():
signup_form_instance2 = signup_form_instance.save(commit = False)
req_user = request.user
signup_form_instance2.password = make_password(signup_form_instance.cleaned_data['password'])
signup_form_instance2.save()
es_user_instance = es_user.objects.create(user= req_user)
es_user_instance.save()
return index(request)#successful signup redirect or return
else:
print("SIGN UP FORM INVALID")
return render(request,'signup.html',{'signup_form':signup_form_instance})
forms.py
class SignUpForm(forms.ModelForm):
class Meta:
model = User
fields = ('username', 'email', 'password')
Может кто-нибудь сказать мне, в чем проблема
ПРИМЕЧАНИЕ: Я использовал эту пользовательскую модель пользователя, потому что позже я добавлю еще много полей в 'es_user'.