如何解决尽管已包含management_form,并且已处理了formset的所有错误,但ManagementForm数据丢失或已被篡改
我正在尝试使用Django提交表单集,但这给了我这个错误: ManagementForm数据丢失或已被篡改 尽管我已经包含了management_form,并且已经处理了表单集的所有错误。那么,这里的解决方案是什么?我们将不胜感激。我提供了模型类,表单类,表单集,视图类和form.html。
class GovernmentHoliday(models.Model):
day = models.CharField(max_length=128,blank=False)
date = models.DateField()
holiday_name = models.CharField(max_length=128,blank=False)
type = models.CharField(max_length=128,blank=False)
comments = models.CharField(max_length=128,blank=False)
from django import forms
from django.forms import modelformset_factory
class GovernmentHolidayForm(forms.ModelForm):
"""
"""
class Meta:
model = GovernmentHoliday
fields = [
'day','date','holiday_name','type','comments',]
widgets = {
'day': forms.TextInput(attrs={'class': 'form-control form-control-sm'}),'date': forms.DateInput(attrs={'class': 'form-control form-control-sm has-feedback-left single_cal','id': 'single_cal3'},format='%m/%d/%Y'),'holiday_name': forms.TextInput(attrs={'class': 'form-control form-control-sm'}),'type': forms.TextInput(attrs={'class': 'form-control form-control-sm'}),'comments': forms.TextInput(attrs={'class': 'form-control form-control-sm'}),}
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
# Edit label
# Non required fields
# Remove help suggestion
for fieldname in ['day','comments']:
self.fields[fieldname].help_text = None
GovernmentHolidayFormset = modelformset_factory(GovernmentHoliday,fields=('day','comments'),form=GovernmentHolidayForm,extra=0,min_num=1,can_delete = True,can_order = True,)
class GovernmentHolidayAddView(LoginRequiredMixin,CreateView):
login_url = '/authentication/login/'
template_name = 'leave/government_holiday_add_form.html'
government_holiday_formset_class = GovernmentHolidayFormset
# Override default get method
# @role_required(allowed_roles=['HR'])
# @HR_admin_only
def get(self,request,**kwargs):
if self.request.user.employee.role.can_add_employee:
government_holiday_formset = self.government_holiday_formset_class(request.GET or None)
return render(request,self.template_name,{'government_holiday_formset': government_holiday_formset})
else:
raise PermissionDenied
# Override default post method
def post(self,**kwargs):
print("Inside GovernmentHolidayAddView")
government_holiday_formset = self.government_holiday_formset_class(request.POST or None)
# data = request.POST.copy()
print(government_holiday_formset.errors)
print(government_holiday_formset)
# Check form validation
if government_holiday_formset.is_valid():
# Save government holiday
for government_holiday_form in government_holiday_formset:
day = government_holiday_form.cleaned_data['day']
print('day',day)
date = government_holiday_form.cleaned_data['date']
print('date',date)
holiday_name = government_holiday_form.cleaned_data['holiday_name']
print('holiday_name')
comments = government_holiday_form.cleaned_data['comments']
print('comments',comments)
government_holiday = government_holiday_form.save()
return redirect('leave:government-holiday-list')
return render(request,{'government_holiday_formset': government_holiday_formset})
{% extends 'base.html' %}
<!-- {% load static %} -->
{% block stylesheets %}
{{block.super}}
<!-- Select2 -->
<link href="{% static 'vendors/select2-4.0.13/dist/css/select2.min.css' %}" rel="stylesheet">
<link rel="stylesheet" href="{% static 'custom/css/buttons.css' %}">
{% endblock stylesheets %}
{% block content %}
<!-- Check every possible error in the form -->
{% if government_holiday_formset.non_field_errors %}
{% if government_holiday_formset.is_bound %}
{% for error in government_holiday_formset.non_field_errors %}
<div class="alert alert-danger">
{{ error }}
</div>
{% endfor %}
{% endif %}
{% endif %}
<!-- Handle the hidden fields -->
{% for hidden_field in government_holiday_formset.hidden_fields %}
{{ hidden_field }}
{% endfor %}
<!-- Manage collection of forms -->
{{ government_holiday_formset.management_form }}
<!-- Handle formset errors -->
{% for government_holiday_form in government_holiday_formset %}
{{ government_holiday_form.non_field_errors }}
{{ government_holiday_form.errors }}
{% for hidden in government_holiday_form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% endfor %}
<form data-parsley-validate class="form-horizontal form-label-left" method="POST" id="government_holiday_add_form">
{% csrf_token %}
<div class="row">
<div class="col">
<h4>Holiday</h4>
</div>
<div class="col-md-3 ">
<button class="btn-m btn-default btn-sm" type="button" value="add" id="add_government_holiday" style="float: right;">
<i class="fa fa-plus" aria-hidden="true" ></i>
</button>
</div>
</div>
<div class="ln_solid"></div>
<div class="government-holiday-formset">
{% for government_holiday_form in government_holiday_formset %}
<div class="government-holiday-form">
<div class="item form-group">
<label class="col-form-label col-md-4 col-sm-4 col-xs-12 label-align">Day </label>
<div class="col-md-2 col-sm-2 col-xs-12">
<!-- <input type="text" id="last-name" name="last-name" required="required" class="form-control col-md-7 col-xs-12"> -->
{{ government_holiday_form.day }}
</div>
</div>
<div class="item form-group">
<label class="col-form-label col-md-4 col-sm-4 col-xs-12 label-align">Date</label>
<div class="col-md-2 col-sm-2 col-xs-12">
<!-- <input type="text" id="last-name" name="last-name" required="required" class="form-control col-md-7 col-xs-12"> -->
{{ government_holiday_form.date }}
<span class="fa fa-calendar-o form-control-feedback left m-1" aria-hidden="true"></span>
</div>
</div>
<div class="item form-group">
<label class="col-form-label col-md-4 col-sm-4 col-xs-12 label-align">Holiday Name</label>
<div class="col-md-4 col-sm-4 col-xs-12">
<!-- <input type="text" id="last-name" name="last-name" required="required" class="form-control col-md-7 col-xs-12"> -->
{{ government_holiday_form.holiday_name }}
</div>
</div>
<div class="item form-group">
<label class="col-form-label col-md-4 col-sm-4 col-xs-12 label-align">Type</label>
<div class="col-md-4 col-sm-4 col-xs-12">
<!-- <input id="birthday" class="date-picker form-control col-md-7 col-xs-12" required="required" type="text"> -->
<div class="form-group has-feedback">
{{ government_holiday_form.type }}
</div>
</div>
</div>
<div class="item form-group">
<label class="col-form-label col-md-4 col-sm-4 col-xs-12 label-align">Comments</label>
<div class="col-md-4 col-sm-4 col-xs-12">
<!-- <input id="birthday" class="date-picker form-control col-md-7 col-xs-12" required="required" type="text"> -->
<div class="form-group has-feedback">
{{ government_holiday_form.comments }}
</div>
</div>
</div>
{% if government_holiday_formset.can_delete %}
<div class="item form-group">
<label class="col-form-label col-md-4 col-sm-4 col-xs-12 label-align" style="display:none">Delete</label>
<div class="col-md-4 col-sm-4 col-xs-12">
<!-- <input id="birthday" class="date-picker form-control col-md-7 col-xs-12" required="required" type="text"> -->
<div class="form-group has-feedback" style="display:none">
<!-- <input type="checkbox" name="work_form-0-DELETE" id="id_work_form-0-DELETE" style="display:none"> -->
{{ government_holiday_formset.DELETE }}
</div>
</div>
</div>
{% endif %}
</div>
{% endfor %}
</div>
<div class="item form-group">
<div class="col-md-6 col-sm-6 col-xs-12 offset-md-4">
{% block government_holiday_form_buttons %}
{% endblock %}
</div>
</div>
</form>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。