表单未将产品积压工作提交到数据库



这是我的项目代码。我通过表格发布数据后,什么也没发生。

#型号.py

from django.db import models
from projectapp.models import Project
class Productbacklog(models.Model):
project=models.ForeignKey(Project,on_delete=models.CASCADE,default=None)
pbId=models.IntegerField(primary_key=True)
pbTitle=models.CharField(max_length=100)
pbPriority=models.IntegerField(blank=True, null=True)
class Meta:
unique_together=('project','pbId')

def __str__(self):
return self.pbTitle

#forms.py

from django import forms
from productbacklogapp.models import Productbacklog
from projectapp.models import Project
class ProductbacklogForm(forms.ModelForm):

class Meta:
model = Productbacklog
exclude=('pbId','project')
fields=['pbTitle']

#views.py

def productbacklogall(request):
if request.method == 'POST':
form = ProductbacklogForm(request.POST)
if form.is_valid():
form.instance.manage = Project.objects.get_or_create(cname=form.cleaned_data['manage_id'])
form.save()
messages.success(request, ('new productbacklog added'))
return redirect('productbacklogall')
else:
pb_all=Productbacklog.objects.all()
return render(request, 'productbacklogall.html', {'pb_all':pb_all})

我认为这个问题在forms.py或views.py上,但我找不到。如果有人能帮助我,我真是太好了。

这也是我的html代码,当我提交一些东西时,方法是post,但我不知道为什么它没有进入数据库。

#productbacklogall.html

{%extends 'base.html'%}
{%block title%}
<title>backlog all</title>
{%endblock title%}
{%block content%}
</br>
{% if messages %}
{% for message in messages %}
<div class="alert alert-primary" role="alert">
{{ message }}
<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
</div>

{% endfor %}
{% endif %}
<div class="container">
<form method="POST"  class="row">
{% csrf_token %}
<label class="col-lg-4"></label>
<input type="text" class="form-control" name="Project" placeholder="project title?"/>
<input type="number" class="form-control" name="pbId" placeholder="backlog id?"/>
<input type="text" class="form-control" name="pbTitle" placeholder="pb title?"/>




<button type="submit" class="btn btn-primary col-lg-2">add project</button>
</form>
</div>
</br>
</br>

<table class="table table-bordered text-center">
<thead class="thead-dark">
<tr>
<th scope="col"> backlog-title</th>
<th scope="col">Edit</th>
<th scope="col">delivarable_task</th>
<th scope="col">related project</th>

</tr>
</thead>
<tbody>
{% load static %}
{% if pb_all %}
{% for obj in pb_all %}
<tr>
<td>{{ obj.pbTitle }}</td>
<td><a href='{% url "delete_productbacklog" obj.pbId %}'>delete</a></td>
<td> <a href=#> delivarabletask </a></td>
<td><a href="{% url 'project' %}">{{ obj.project.pbTitle }}</a></td>
</tr>

{% endfor %}
{% endif %}
</tbody>
</table>

</div>
{%endblock content%}

您的表单数据无效,要查看它们,请将以下代码添加到您的视图中:

其他:messages.error(请求,"错误"(

像这样:

def productbacklogall(request):
if request.method == 'POST':
form = ProductbacklogForm(request.POST)
if form.is_valid():
form.instance.manage = Project.objects.get_or_create(cname=form.cleaned_data['manage_id'])
form.save()
messages.success(request, ('new productbacklog added'))
else:
messages.error(request, "Error")
return redirect('productbacklogall')
else:
pb_all=Productbacklog.objects.all()
return render(request, 'productbacklogall.html', {'pb_all':pb_all})

最新更新