Django 我不知道';我看不到任何语法错误,但我一直得到ModelForm没有指定模型类
我试图将一个表单链接到我的模型,但页面上不断出现值错误。我没有看到任何语法错误,我也不确定逻辑中的缺陷可能在哪里 我已经试着把meta换成meta,但没有效果。我已经有一些实体在表中,这可能是导致问题的原因吗Django 我不知道';我看不到任何语法错误,但我一直得到ModelForm没有指定模型类,django,forms,model,valueerror,Django,Forms,Model,Valueerror,我试图将一个表单链接到我的模型,但页面上不断出现值错误。我没有看到任何语法错误,我也不确定逻辑中的缺陷可能在哪里 我已经试着把meta换成meta,但没有效果。我已经有一些实体在表中,这可能是导致问题的原因吗 # URLS________ path('posts/create_post/', views.create_post, name='create_post'), #MODELS________ class Posts(models.Model): priority = mod
# URLS________
path('posts/create_post/', views.create_post, name='create_post'),
#MODELS________
class Posts(models.Model):
priority = models.CharField(max_length=30)
client = models.CharField(max_length=30)
title = models.CharField(max_length=150)
assigned_to = models.ForeignKey(Users, on_delete=models.CASCADE)
exp_comp_time = models.FloatField(max_length=4)
percent_comp = models.FloatField(max_length=4)
post_date = models.CharField(max_length=20)
due_date = models.CharField(max_length=20)
latest_mod = models.CharField(max_length=20, null=True)
class PostsForm(forms.ModelForm):
class meta:
model = Posts
fields = '__all__'
#VIEWS________
def create_post(request):
""""Renders the create task page"""
if request.method == "GET":
form = PostsForm()
return render(request, 'app/form.html', {'form': form})
elif request.method == "POST":
form = PostsForm(request.POST)
form.save()
return HttpResponseRedirect('/posts')
#FORM.html________
{% extends "app/layout.html" %}
{% block content %}
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Submit Task</button>
</form>
{% endblock %}
您需要大写
Meta
:
from django.forms import ModelForm ### Double check your import statement
from django.db import models
...
class PostsForm(ModelForm): ### Notice that I have changed the inherited class name
class Meta: ### HERE
model = Posts
fields = '__all__'
我已经试过把meta换成meta了
确保在进行更改后保存该文件
我已经有一些实体在表中,这可能是导致问题的原因吗
# URLS________
path('posts/create_post/', views.create_post, name='create_post'),
#MODELS________
class Posts(models.Model):
priority = models.CharField(max_length=30)
client = models.CharField(max_length=30)
title = models.CharField(max_length=150)
assigned_to = models.ForeignKey(Users, on_delete=models.CASCADE)
exp_comp_time = models.FloatField(max_length=4)
percent_comp = models.FloatField(max_length=4)
post_date = models.CharField(max_length=20)
due_date = models.CharField(max_length=20)
latest_mod = models.CharField(max_length=20, null=True)
class PostsForm(forms.ModelForm):
class meta:
model = Posts
fields = '__all__'
#VIEWS________
def create_post(request):
""""Renders the create task page"""
if request.method == "GET":
form = PostsForm()
return render(request, 'app/form.html', {'form': form})
elif request.method == "POST":
form = PostsForm(request.POST)
form.save()
return HttpResponseRedirect('/posts')
#FORM.html________
{% extends "app/layout.html" %}
{% block content %}
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Submit Task</button>
</form>
{% endblock %}
没有
最后要检查的是确保您的模型是在匹配表单上方定义的。解决了,我想我只需要重置服务器。