AttributeError: у объекта 'tuple' нет атрибута '_meta', ошибка в Django - PullRequest
1 голос
/ 07 мая 2019

Я пытаюсь создать веб-страницу для регистрации в django, но не могу обойти эту ошибку:

from accounts.forms.forms import AuthForm, SignUpForm

Файл "C: \ Users \ tonik \ OneDrive \ Plocha \ Pythonпроекты \ chytry-lock-master \ smartlock \ accounts \ forms \ forms.py ", строка 7, в классе SignUpForm (UserCreationForm): файл" C: \ Users \ tonik \ AppData \ Local \ Programs \ Python \ Python36 \ lib \site-packages \ django \ forms \ models.py ", строка 256, в new apply_limit_choices_to = False, файл" C: \ Users \ tonik \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ django \ forms \ models.py ", строка 139, в fields_for_model opts = model._meta AttributeError: у объекта 'tuple' нет атрибута '_meta'

my forms.py:

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.forms import AuthenticationForm
from django.forms.widgets import PasswordInput, TextInput


class SignUpForm(UserCreationForm):
    email = forms.EmailField(required=True, help_text='Required. Please enter a valid e-mail address.')
    email = forms.EmailField(required=True, widget=TextInput(attrs={'class': 'span2', 'placeholder': 'e-mail'}), help_text='Required. Please enter a valid e-mail address.')

    class Meta:
        model = UserCreationFormFields = ('username', 'email', 'password1', 'password2')
        fields = "__all__"

class AuthForm(AuthenticationForm):
    class Meta:
        model = AuthenticationForm


        def __init__(self, *args, **kwargs):
            super(AuthenticationForm, self).__init__(*args, **kwargs)

            for field in self.fields.values():
                field.error_messages = {'required': '{fieldname} is required'.format(fieldname=field.label)}

    username = forms.CharField(widget=TextInput(attrs={'placeholder': 'nickname'})),
    email = forms.CharField(widget=TextInput(attrs={'placeholder': 'e-mail'})),
    password = forms.CharField(widget=PasswordInput(attrs={'placeholder':'password'}))

мои взгляды:

from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import login, authenticate
from smartlock.forms import SignUpForm


def signup(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            first_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=first_password)
            login(request, user)
            return redirect('home')
        else:
            form = UserCreationForm()
            return render(request, 'signup.html', {'form': form})
    else:
        form = UserCreationForm()
        form = SignUpForm()
    return render(request, 'signup.html', {'form': form})

Потратил часы, пытаясь это исправить, все еще не уверенный, что случилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...