![](/img/trans.png)
[英]Django form with two submit buttons . . . one requires fields and one doesn't
[英]Django doesn't submit my form if I using individual fields
由于设计目的,我需要单独呈现我的 Django 表单字段。 它看起来不错,但如果我点击提交它不会做任何事情只是短暂的眨眼。 如果我渲染整个{{ form }}
效果很好。 我对自己做错了什么没有任何想法。 你们能帮帮我吗?
html
<form method = "POST">
<div class="container w-75 bg-light rounded-3 pt-3">
<div class="form-group">
{% csrf_token %}
{% comment %} {{ form }} {% endcomment %}
<div class="row">
<div class="col-4 border-right border-primary p-3">
<h6 class="text-primary">1. text.</h6>
{{ form.att_v001 }}<br>
</div>
<div class="col-4 border-primary pt-3 pl-4">
<h6 class="text-primary">2.text.</h6>
{{ form.att_v002 }}<br>
</div>
<div class="col-4 border-left border-primary pt-3 pl-4">
<h6 class="text-primary">3. text.</h6>
{{ form.att_v003 }}<br>
</div>
<div class="col-4 border-left border-primary pt-3 pl-4">
<h6 class="text-primary">4. text.</h6>
{{ form.att_v004 }}<br>
</div>
<div class="col-4 border-left border-primary pt-3 pl-4">
<h6 class="text-primary">5. text.</h6>
{{ form.att_v005 }}<br>
</div>
<div class="col-4 border-left border-primary pt-3 pl-4">
<h6 class="text-primary">6. text.</h6>
{{ form.att_v006 }}<br>
</div>
</div>
<button class="btn btn-large btn-primary" type="submit">Mentés</button>
模型.py
class Attitud(models.Model):
def __str__(self):
return str(self.user_name)
class question(models.IntegerChoices):
Nem_jellemző = 0
Néha_jellemző = 1
Nagyon_jellemző = 2
user_name = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
att_v001 = models.IntegerField(default=0, null=True, blank=False, choices=question.choices)
att_v002 = models.IntegerField(default=0, null=True, blank=False, choices=question.choices)
att_v003 = models.IntegerField(default=0, null=True, blank=False, choices=question.choices)
att_v004 = models.IntegerField(default=0, null=True, blank=False, choices=question.choices)
att_v005 = models.IntegerField(default=0, null=True, blank=False, choices=question.choices)
att_v006 = models.IntegerField(default=0, null=True, blank=False, choices=question.choices)
forms.py
class AttitudForm(forms.ModelForm):
class Meta:
model = Attitud
fields = '__all__'
widgets = {
'att_v001': forms.RadioSelect(attrs={'class': 'custom-radio-list'}),
'att_v002': forms.RadioSelect(attrs={'class': 'custom-radio-list'}),
'att_v003': forms.RadioSelect(attrs={'class': 'custom-radio-list'}),
'att_v004': forms.RadioSelect(attrs={'class': 'custom-radio-list'}),
'att_v005': forms.RadioSelect(attrs={'class': 'custom-radio-list'}),
'att_v006': forms.RadioSelect(attrs={'class': 'custom-radio-list'}),
}
视图.py
def stressz_item(request):
form = AttitudForm(request.POST or None)
if form.is_valid():
form.save()
form.user_name = request.user
return redirect('/stressz/main.html')
return render(request, 'stressz/attitud-form.html', {'form':form})
class AttitudCreateView(CreateView):
model = Attitud
form_class = AttitudForm
template_name = 'stressz/attitud-form.html'
def form_valid(self, form):
form.instance.user_name = self.request.user
return super().form_valid(form)
我认为您缺少 html 表单中的操作属性。
所以,
添加动作属性,例如:
动作="{% url 'application_name: url_path_name' %}"
将其添加到您的 URLConf 例如:
路径('url_path/',views.view_name,name='url_path_name'),
请注意,您将 URLConf 文件(通常默认为 urls.py)中的视图链接到模板中呈现的表单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.