Python django中的用户注册表窗体未获取注册表
我正在尝试注册django网站的用户,但没有注册 我正在发布代码,请帮助我 这是获取输入的views.py的代码Python django中的用户注册表窗体未获取注册表,python,django,Python,Django,我正在尝试注册django网站的用户,但没有注册 我正在发布代码,请帮助我 这是获取输入的views.py的代码 from django.shortcuts import render , redirect # Create your views here. from django.contrib.auth import login from django.contrib.auth.forms import UserCreationForm from .models import User_M
from django.shortcuts import render , redirect
# Create your views here.
from django.contrib.auth import login
from django.contrib.auth.forms import UserCreationForm
from .models import User_Main
def become_user(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
user = form.save()
login(request , user)
user_main = User_Main.objects.create(name = user.username, created_by=user)
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'user_of_ecommerce/become_user.html' ,{'form':form})
URL.py的代码
from django.urls import path
from . import views
urlpatterns = [
path('become-user/' , views.become_user , name="become_user")
]
这是表格的代码
{% extends "core_of_ecommerce/base.html" %}
{% block content %}
<form action="." method="post" >
{% csrf_token %}
{{form.as_p}}
<div>
<button>sbmot</button>
</div>
</form>
{% endblock content %}
models.py
from django.db import models
# Create your models here.
from django.contrib.auth.models import User
class User_Main(models.Model):
name = models.CharField(max_length = 150)
created_at = models.DateTimeField( auto_now_add=True)
created_by = models.OneToOneField(User, on_delete=models.CASCADE , related_name='user_name')
class Meta:
ordering = ['name']
def __str__(self):
return self.name
当我在输入所有详细信息后单击按钮时,它会刷新到同一页面,希望您能帮助我
我甚至在“管理”面板中检查了“它没有注册”您的模板导致了这种情况,因为您没有正确提交,请点击“提交”按钮
<form action="{% url 'login' %}" method="post">
{% csrf_token %}
{{form.as_p}}
<div>
<input type="submit" value="Register">
</div>
</form>
并验证用户是否已正确保存(在您的管理页面中),然后我们会担心登录
保存工作完成后,按如下方式修改视图:
from django.contrib.auth import authenticate, login
def become_user(request):
if request.method == 'POST':
form = UserCreationForm(data=request.POST)
if form.is_valid():
user = form.save()
cd = form.cleaned_data
user = authenticate(username=cd['username'], password=cd['password1']) #new line
login(request, user, backend='django.contrib.auth.backends.ModelBackend') #new line
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'user_of_ecommerce/become_user.html' ,{'form':form})
如果您有更多信息,请在下面发表评论。Form action=“.”?先生,我使用它保持在同一页面上。如果我必须更改或删除它,我只是在学习django,请帮助尝试删除该信息。先生现在甚至不工作,但先生用户甚至没有注册,那么我如何使用itok登录,试试我的更新答案你导入重定向了吗?从django.shortcuts导入重定向,是的,先生,我导入了itsir,我可以给你发送带有驱动器链接的代码的rar文件吗?最后我使用了这个,这个正在工作
def become_user(request):
if request.method == 'POST':
form = UserCreationForm(data=request.POST)
if form.is_valid():
user = form.save()
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'user_of_ecommerce/become_user.html' ,{'form':form})
from django.contrib.auth import authenticate, login
def become_user(request):
if request.method == 'POST':
form = UserCreationForm(data=request.POST)
if form.is_valid():
user = form.save()
cd = form.cleaned_data
user = authenticate(username=cd['username'], password=cd['password1']) #new line
login(request, user, backend='django.contrib.auth.backends.ModelBackend') #new line
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'user_of_ecommerce/become_user.html' ,{'form':form})
def become_user(request):
if request.method == 'POST':
form = UserCreationForm(data=request.POST)
if form.is_valid():
user = form.save()
login(request , user)
user_main = User_Main.objects.create(name = user.username, created_by=user)
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'user_of_ecommerce/become_user.html' ,{'form':form})