大家好,我用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})