当我提交此表单时,而不是保存它所需的值并将其保存到数据库中,它提交了表单,但当我检查管理页面时,值为无,表单提交并将我重定向到主页,但当我检查我的管理员时,表单所需的值为无:
型号:
class Column(models.Model):
user = models.OneToOneField(User, on_delete= models.CASCADE)
name = models.CharField(max_length=100)
select_type = models.ForeignKey(Type, on_delete= models.CASCADE)
视图:
class CreateColumn(CreateView):
model = Column
template_name = 'column_create.html'
form_class = ColumnForm
success_url = 'home'
def get_context_data(self, **kwargs):
context = super(CreateColumn, self).get_context_data(**kwargs)
context['formset'] = ColumnFormSet(queryset=Column.objects.none())
return context
def form_valid(self, form):
form.instance.user = self.request.user
return super(CreateColumn, self).form_valid(form)
表格:
class ColumnForm(forms.ModelForm):
class Meta:
model = Column
fields = ['name', 'select_type']
ColumnFormSet = modelformset_factory(Column, fields=('name' 'select_type'), extra=30)
模板:
<form method='post'>
{% csrf_token %}
{{ formset.management_form}}
{% for form in formset %}
{{form.as_p}}
{% endfor %}
<button type='submit'>Save<button/>
<form/>
1条答案
按热度按时间72qzrwbm1#
您的表单没有提交,因为它无效,用户字段是您模型中的必填字段,但您忽略了
ColumnForm
中的该字段,因此表单不会提交。在解决方案中,我已经使用户字段不需要将
form_vaild()
方法更新为在您的forms.py