使用Custome用户进行Django注册
我使用django使用Custome用户进行Django注册,django,django-models,django-forms,django-views,django-users,Django,Django Models,Django Forms,Django Views,Django Users,我使用djangoAbstractUser创建了一个自定义用户。我真的不知道如何反映为用户注册、登录和更新添加的字段。以下是我尝试过的: models.py forms.py 管理员 views.py(用于注册) 登录视图 def login (request): if request.method == 'POST': username = request.POST['username'] password = request.POST['password'] u
AbstractUser
创建了一个自定义用户。我真的不知道如何反映为用户注册、登录和更新添加的字段。以下是我尝试过的:
models.py
forms.py
管理员
views.py(用于注册)
登录视图
def login (request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(usernam=username, password=password)
if user is not None:
auth.login(request,user)
messages.success(request, 'You are now logged in')
return redirect ('dashboard')
else:
messages.error(request, 'Invalid Credentials')
return redirect ('login')
else:
return render (request, 'accounts/signin.html')
查看以进行更新
class UpdateUser(UpdateView):
model= User
template_name= 'profile/profile-edit.html'
fields = ['first_name', 'last_name', 'email','state','city', 'local_government', 'phone_number',
'picture']
context_object_name= 'profile'
当我用上面的代码尝试视图时,它不起作用。我相信我弄错了,希望能得到任何帮助。您有
CustomUserCreationForm
。因此,使用form=CustomUserCreationForm(request.POST)
代替所有request.POST['key']
东西。然后检查此表单是否有效以及是否为-save form:如果form.is\u valid():form.save()
。与CustomUserChangeForm
表单相同。谢谢@yevhenim。我没有完全得到你的答复;我是django的新手。下面是我对表单的看法。非常感谢@Yevhenim。
class CustomUserAdmin(UserAdmin):
add_form = CustomUserCreationForm
form = CustomUserChangeForm
model = CustomUser
list_display = ['id', 'first_name', 'last_name', 'email','subscription_plan', 'state', 'city',
'local_government', 'phone_number', 'picture']
def register (request):
if request.method == 'POST':
firstname= request.POST['firstname']
lastname= request.POST['lastname']
state= request.POST['state']
city= request.POST['city']
email= request.POST['email']
username= request.POST['username']
password= request.POST['password']
password2= request.POST['password2']
if password == password2:
if User.objects.filter(username=username).exists():
messages.error (request, 'That username is taken')
return redirect('register')
else:
if User.objects.filter(email=email).exists():
messages.error (request, 'That email is being used')
return redirect('register')
else:
user= User.objects.create(username=username, first_name=firstname,
last_name=lastname, email=email, password = make_password(password),
state=state, city=city)
user.save()
messages.success (request, 'You are now registered and can login')
return redirect('login')
else:
messages.error (request, 'passwords do not match')
return redirect('register')
else:
return render (request, 'accounts/signup.html')
def login (request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(usernam=username, password=password)
if user is not None:
auth.login(request,user)
messages.success(request, 'You are now logged in')
return redirect ('dashboard')
else:
messages.error(request, 'Invalid Credentials')
return redirect ('login')
else:
return render (request, 'accounts/signin.html')
class UpdateUser(UpdateView):
model= User
template_name= 'profile/profile-edit.html'
fields = ['first_name', 'last_name', 'email','state','city', 'local_government', 'phone_number',
'picture']
context_object_name= 'profile'