AttributeError:'ModelFormOptions'对象没有属性'private\u fields'错误消息

2024-09-27 07:27:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我不明白这个错误是什么意思。看来我什么都做对了。你知道吗

你知道吗表单.py地址:

from django import forms

from django.forms import ModelForm

from .models import SignUpForm


class SignUpForm(forms.ModelForm):
    class Meta:
        model = SignUpForm
        fields = ['name', 'company', 'city', 'country', 'email', 'password']
        widgets = {
        'password': forms.PasswordInput(),
    }

这将抛出:

AttributeError: 'ModelFormOptions' object has no attribute 'private_fields'

这是我的视图.py你知道吗

from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse
from .forms import signup
from django.utils.html import format_html
from django.contrib import messages
from .models import signup

def index(request):
    return render(request, 'myapp/index.html')

def signup(request):
    if request.method == 'POST':
        register_form = signup(request.POST)
        if register_form.is_valid():
            post = register_form.save()
            message = format_html("Hi {0}, Thank you for signing up with us! See your profile <a href=''>{1}</a>".format(register_form.cleaned_data['name'], "here"))
            form = signup()
            return render(request, 'myapp/register.html', {'signup':NewForm, 'message': message})
        else:
            message = register_form.errors
            form = signup()
            return render(request, 'myapp/register.html', {'signup':form, 'message': message})

    else:
        form = signup()

    return render(request, 'myapp/register.html', {'signup':form})

Tags: djangofromimportformregisterformatmessagereturn
1条回答
网友
1楼 · 发布于 2024-09-27 07:27:20

拥有一个名为SignUpForm的模型是一个非常糟糕的主意,原因有很多。一般来说,以Form结尾的类应该是表单类,而不是模型类。更重要的是,它很可能是你的错误的原因。你知道吗

在你的views.py中,你可能在做这样的事情:

from .models import SignUpForm
from .forms import SignUpForm

def some_view(request):
    if request.POST:
        form = SignUpForm(request.POST)
    else:
        form = SignUpForm(instance=SignUpForm(col1='foo', col2='bar'))

你猜怎么着?您刚刚将一个SignUpForm表单类的实例传递给了SignUpForm而不是SignUpForm模型!你知道吗

更改SignUpForm模型的名称,很可能不会出错。你知道吗

如果这没用,请给我看看你的views.py表格。你知道吗

相关问题 更多 >

    热门问题