'register'对象在 Django 中没有属性'get'



大家好,我用django做了一个博客,但我需要注册使用,我总是收到这个错误:

AttributeError at /register/
'register' object has no attribute 'get'

我已经搜索了太多次,但没有得到正确的答案,所以请确保不要标记为重复的

这是我的视图.py

from django.shortcuts import render , get_object_or_404,redirect
from django.utils import timezone
from blog.models import *
from blog.forms import *
from django.contrib.auth.decorators import login_required
from django.urls import reverse_lazy
from django.contrib.auth.models import User
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import (TemplateView,ListView,
DetailView,CreateView,
UpdateView,DeleteView)
# Create your views here.
def user_register(request):
if request.method == "POST":
reg = register(data=request.POST)
if reg.is_valid():
user = reg.save()
user.set_password(user.password)
user.save()
else:
print(register.errors)
else:
reg = register()
return render(request,'register.html',{'reg':reg})

这是我的型号.py

class register(models.Model):
user = models.OneToOneField(User,on_delete="Cascade")

这是我的表格.py

class register(forms.ModelForm):
class Meta():
model = User
fields = ('username','email','password')

我在等待你的答案!

提供urls.py文件会很有帮助,但目前我认为它看起来像这样:

urls.py

urlpatterns = [
path('register/', views.user_register, name='register'),
]

无论哪种方式,问题都是user_register函数不知道如何处理GET请求(即,当您访问调用该函数的URL时(。您应该在user_register中定义逻辑来处理GET请求。类似这样的东西:

def user_register(request):
if request.method == "POST":
reg = register(data=request.POST)
if reg.is_valid():
user = reg.save()
user.set_password(user.password)
user.save()
else:
print(register.errors)
>if request.method=='GET':
>    # do something
return render(request,'register.html',{'reg':reg})

最新更新