【发布时间】:2021-07-27 02:06:53
【问题描述】:
出于设计目的,我需要单独呈现我的 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>
models.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'}),
}
views.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)
【问题讨论】:
标签: python django forms submit