ManagementForm数据丢失或已被篡改

我正在尝试创建一个表单集来保存记录。但是,提交表格时,我总是收到错误消息。如果可以的话,请告诉我如何保存My记录批次。

Myviews.py:

def weekly_progress(request):

ProgressFormSet = formset_factory(WeeklyProgressReportForm, extra=16)

formset = ProgressFormSet(request.POST or None)

if formset.is_valid():

for f in formset:

print(f)

return render(request, "progress/progressentry.html", {'formset' : formset})

Myforms.py

class WeeklyProgressReportForm(forms.ModelForm):

class Meta:

model = WeeklyProgressReport

fields = ('target_date', 'this_date', 'pkgno', 'slno', 'description', 'unit', 'receipt_this_week', 'issue_this_week', 'erection_this_week')

widgets = {

'target_date': forms.DateInput(attrs={'class': 'form-control', 'readonly': 'readonly'}),

'this_date': forms.DateInput(attrs={'class': 'form-control', 'readonly': 'readonly'}),

'pkgno': forms.TextInput(attrs={'class': 'form-control', 'readonly': 'readonly'}),

'slno': forms.NumberInput(attrs={'class': 'form-control', 'readonly': 'readonly'}),

'description': forms.Textarea(attrs={'class': 'form-control', 'rows': 1, 'readonly': 'readonly'}),

'unit': forms.TextInput(attrs={'class': 'form-control', 'readonly': 'readonly'}),

'receipt_this_week': forms.NumberInput(attrs={'class': 'form-control', 'step': 0.01}),

'issue_this_week': forms.NumberInput(attrs={'class': 'form-control', 'step': 0.01}),

'erection_this_week': forms.NumberInput(attrs={'class': 'form-control', 'step': 0.01, 'readonly': 'readonly'}),

}

My template::

<form id="contractor-form" method="post" action="">

{% csrf_token %}

<!-- First Row -->

<div class="col-lg-6">

<div class="panel panel-primary">

<div class="panel-heading">Select Your Package</div>

<div class="panel-body">

<div class="col-lg-4">

<h4><label class="label label-primary">Package Number</label></h4>

</div>

<div class="col-lg-4">

<select id="pkgno-select" class="form-control">

<option value="12 (BRP)">12 (BRP)</option>

<option value="13 (BRP)">13 (BRP)</option>

<option value="13 (DHB)">13 (DHB)</option>

<option value="14 (DHB)">14 (DHB)</option>

</select>

</div>

<div class="col-lg-4">

<button type="button" id="date-edit" class="btn btn-warning">Edit Date</button>

</div>

</div>

</div>

</div>

<!-- Second Row -->

<div class="col-lg-12">

<div class="panel panel-primary">

<div class="panel-heading">Quantities</div>

<div class="panel-body">

<table class="table table-hover">

<thead>

<tr>

<th>Target Date</th>

<th>This Date</th>

<th>Pkg Number</th>

<th>Sl Number</th>

<th>Description</th>

<th>Unit</th>

<th>Receipt This Week</th>

<th>Issue This Week</th>

<th>Erection This Week</th>

</tr>

</thead>

<tbody>

{% for form in formset %}

<tr>

<td>{{ form.target_date }}</td>

<td>{{ form.this_date }}</td>

<td>{{ form.pkgno }}</td>

<td>{{ form.slno }}</td>

<td>{{ form.description }}</td>

<td>{{ form.unit }}</td>

<td>{{ form.receipt_this_week }}</td>

<td>{{ form.issue_this_week }}</td>

<td>{{ form.erection_this_week }}</td>

</tr>

{% endfor %}

</tbody>

</table>

</div>

</div>

</div>

<!-- Submit Button -->

<div class="well well-lg">

<button type="submit" class="btn btn-success btn-lg btn-block">Save</button>

</div>

</form>

Mymodels.py

class WeeklyProgressReport(models.Model):

target_date = models.DateField()

this_date = models.DateField()

pkgno = models.CharField(max_length=10)

slno = models.IntegerField(max_length=2)

description = models.CharField(max_length=50)

unit = models.CharField(max_length=5)

target_quantity = models.DecimalField(max_digits=12, decimal_places=2, blank=True, default=0)

receipt_previous = models.DecimalField(max_digits=12, decimal_places=2, blank=True, default=0)

receipt_this_week = models.DecimalField(max_digits=12, decimal_places=2, blank=True, default=0)

issue_previous = models.DecimalField(max_digits=12, decimal_places=2, blank=True, default=0)

issue_this_week = models.DecimalField(max_digits=12, decimal_places=2, blank=True, default=0)

erection_previous = models.DecimalField(max_digits=12, decimal_places=2, blank=True, default=0)

erection_this_week = models.DecimalField(max_digits=12, decimal_places=2, blank=True, default=0)

def __unicode__(self):

return self.pkgno

回答:

您必须在模板中呈现管理表单。 一些选定的报价:

表单集使用此表单来管理表单集中包含的表单的集合。如果您不提供此管理数据,则会引发异常[。]

管理表单可用作表单集本身的属性。在模板中呈现表单集时,可以通过呈现{{my_formset.management_form}}(适当地替换表单集的名称)来包含所有管理数据。

以上是 ManagementForm数据丢失或已被篡改 的全部内容, 来源链接: utcz.com/qa/421451.html

回到顶部