gpt4 book ai didi

python - 属性错误 : 'ModelFormOptions' object has no attribute 'private_fields' error message

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:32 27 4
gpt4 key购买 nike

我不明白这个错误是什么意思。看来我做的一切都是正确的。

表单.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'

这是我的views.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})

最佳答案

有一个名为 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 form 类的实例传递给您的 SignUpForm不是 SignUpForm 型号!

更改您的 SignUpForm model 的名称,您很可能不会收到错误。

如果这没有帮助,请向我展示此表单的 views.py

关于python - 属性错误 : 'ModelFormOptions' object has no attribute 'private_fields' error message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58143151/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com