![](/img/trans.png)
[英]Django-Allauth - Errors with custom User model and custom Signup form
[英]Django user signup using custom user model not working
我有一個 Django 自定義用戶模型“es_user”,它繼承了 Django 的默認用戶模型。 當用戶注冊時,它工作正常,但該用戶將成為“用戶”的一部分,並且不會添加到 es_user。 因此,每次用戶注冊時,我都必須轉到管理面板並將已登錄的“用戶”添加到“es_user”。
所以為了解決這個問題,我將這 2 行添加到了views.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.
模型.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})
表格.py
class SignUpForm(forms.ModelForm):
class Meta:
model = User
fields = ('username', 'email', 'password')
有人能告訴我問題出在哪里嗎
注意:我使用了這個自定義用戶模型,因為稍后我將向“es_user”添加更多字段。
問題是req_user = request.user
正在返回AnonymousUser
因為您還沒有登錄用戶。 所以在使用request.user
之前,先登錄用戶。
或者,您可以只添加您剛剛創建的用戶而不登錄:
es_user_instance = es_user.objects.create(user=signup_form_instance2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.