У объекта 'register' нет атрибута 'get' в Django - PullRequest
0 голосов
/ 31 октября 2019

Привет Всем, я делаю блог с django, но мне нужно зарегистрировать использование, и всегда я получаю эту ошибку:

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

Я уже ищу слишком много раз, но я не получаю правильный ответ, поэтому убедитесь, чтоне помечать как дубликат

Вот мой Views.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})

Вот мой Models.py

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

Вот мой Forms.py

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

Я жду ваших ответов!

1 Ответ

2 голосов
/ 31 октября 2019

Предоставление файла 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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...