我正在创建一个Django Web应用程序,并且刚开始使用Django表单。即使输入了这个项目名称字段,我还是不断收到这个错误。
<tr><th><label for="id_title">projectName:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="title" maxlength="100" required id="id_title"></td></tr>
下面是我的代码。我不知道我错过了什么。
- 索引. html:**
<form id="project_form" action="{% url 'createproject' %}" method="post">
{% csrf_token %}
<div class="form-group row">
<label for="projectName" class="col-sm-2 col-form-label">Project Name:</label>
<div class="col-sm-9">
<input type="text" class="form-control" placeholder="Enter Project Name" name="projectName" id="projectName">
</div>
</div>
<input type="submit" class="btn btn-primary" id="submit-project-btn">
</form>
- 表格. py:**
class CreateEditProjectForm(forms.Form):
title = forms.CharField(label="projectName", max_length=100, required=True)
- 型号. py:**
class TestProject(models.Model):
creator = models.ForeignKey(User,on_delete=models.CASCADE,related_name="testcreatorId")
projectName = models.CharField(max_length=200, default=None)
created_dt = models.DateTimeField(auto_now_add=True, auto_now=False)
last_modified_dt = models.DateTimeField(auto_now_add=False, auto_now=True)
- 浏览次数. py:**
def create_project(request):
print("in create_project")
print(request.method)
if (request.method == "POST"):
form = forms.CreateEditProjectForm(request.POST)
print(form)
if form.is_valid():
projectName = form.cleaned_data["projectName"]
print(projectName)
if (len(projectName) > 0):
creator = User.objects.get(id=request.session['_auth_user_id'])
project = TestProject(projectName=projectName, creator=creator)
print(project)
project.save()
return HttpResponseRedirect(reverse("index"))
return render(request, "index.html", {
"form": form
})
return render(request, "index.html", {
"form": form
})
else:
form = forms.CreateEditProjectForm()
return render(request, "index.html", {
"form": form
})
3条答案
按热度按时间oxf4rvwz1#
我已经知道为什么会出现这个错误了。这是因为我的forms.py。
title
应该是projectName
。wfypjpf42#
看起来你没有使用django视图在html文件中呈现的表单域。如果你在表单中使用html输入,你可能需要使用ajax来提交表单。按照下面的方法在html文件中呈现django表单域。
参考:https://docs.djangoproject.com/en/4.0/topics/forms/
yzuktlbb3#
将您的表单更改为以下格式。
忘记添加
enctype="multipart/form-data"
通常是导致此问题的原因。