我正在制作一个简单的表格来接收用户的信息并使用django在下一页上显示。 但是我收到错误'form'的值必须从'BaseModelForm'继承,当我尝试从ModelForm继承时,它会显示没有模块ModelForm的错误。
admin.py
from django.contrib import admin
from .models import Album
from .forms import NameForm
from django.forms import *
from django.db.models import *
from models import *
admin.site.register(Album)
class MyModelAdmin(admin.ModelAdmin):
form = NameForm
admin.site.register(NameForm, MyModelAdmin)
class NameFormAdmin(admin.ModelAdmin):
form = NameForm
class NameForm(forms.Form):
class Meta:
model = NameForm
views.py
from django.contrib import admin
from .models import Album
from .forms import NameForm
from django.forms import *
from django.db.models import *
from models import *
admin.site.register(Album)
class MyModelAdmin(admin.ModelAdmin):
form = NameForm
admin.site.register(NameForm, MyModelAdmin)
class NameFormAdmin(admin.ModelAdmin):
form = NameForm
class NameForm(forms.Form):
class Meta:
model = NameForm
forms.py
from django import forms
from .models import NameForm
from django.forms import ModelForm
class NameForm(forms.Form):
class Meta:
model = NameForm
fields = '__all__'
your_name = forms.CharField(label="Your name", max_length=100)
name.html
<form action="/profile/see" method="post">
{% csrf_token %}
{{ NameForm }}
<input type="submit" value="Submit" />
</form>
答案 0 :(得分:0)
您在发布的所有文件中都定义了NameForm
,并且您还在NameForm
文件中导入了一个名为forms.py
的模型。您不应将表单命名为与Model相同的名称。
您还使用from foo import *
语法导入所有内容,这非常糟糕,因为您可能会使用模型定义覆盖NameForm
,反之亦然。
在您的HTML中,您执行的操作{{NameForm}}
不正确。使用forms.Form
类在HTML中呈现表单的正确方法是{{ form }}
。