【发布时间】:2019-04-24 12:40:46
【问题描述】:
对于个人项目,我有一个重新组合多个 froms 的视图。出于空间原因,必须列出一个列表,在该列表中,我根据数据库中的数据添加了一些表单。所以我的问题是:如何检查列表中存在的那些表单的验证。
这是我的看法:
def confirmation_view(request, id ,*args, **kwargs):
tournament = Tournament.objects.get(pk=id)
sport = tournament.sport
rule = Rule.objects.get(tournament=tournament)
categories = Category.objects.filter(tournament=tournament)
form_tournament = TournamentCreationForm(request.POST or None, instance=tournament)
form_sport = SportEditForm(request.POST or None, instance=sport)
form_rule = RuleForm(request.POST or None, instance=rule)
enum = 1
tab_form_category = []
for category in categories:
form_category = CategoryForm(request.POST or None, instance=category)
tab_form_category.insert(enum, form_category)
enum = enum + 1
if form_tournament.is_valid() and form_sport.is_valid() and form_rule.is_valid():
return redirect('tournament')
context = {
'form_tournament': form_tournament,
'form_sport': form_sport,
'form_rule': form_rule,
'tab_form_category': tab_form_category
}
return render(request, 'confirmation.html', context)
我说的是“tab_form_category”。
我没有足够的 Python 和 Django 经验,无法自行推断解决方案。
编辑:
这是我的类别模型:
class Category(models.Model):
description = models.CharField(max_length=128)
tournament = models.ForeignKey(Tournament, default=None, on_delete=models.CASCADE)
【问题讨论】:
-
form_category.is_valid()就足够了.....它将返回True或False -
列表中有几个表格就够了吗?我必须检查所有表格是否有效?
-
您可以在将它们添加到
tab_form_category列表之前调用is_valid()方法。因此,您将拥有有效的表格
标签: django django-forms django-validation