小编Dav*_*dMM的帖子

如何验证 CreateView 中多个 inlineformset 的字段的总和?

我有一个模型的 CreateView,其中包含另一个模型的 inlineformset_factory(4 行,每个子模型之一)。孩子的模型之一是“百分比”。现在它保存了父模型和子模型,但我没有对百分比字段进行任何验证,因此用户可以轻松输入“11”、“34”、“02”和“0”,它将保存它。

我想验证一下,在保存任何内容之前,百分比字段的总和是 100%。我的 forms.py 看起来像这样:

class ParentForm(ModelForm):
    class Meta:
        model = Parent
        fields = ['name', 'observations']


class ChildCreateForm(ModelForm):
    class Meta:
        model = Child
        fields = ['percentage', 'material']

    def clean(self):
        cleaned_data = super(ChildCreateForm, self).clean()
        print(cleaned_data['percentage'])


ChildCreateFormCreateFormSet = inlineformset_factory(Parent, Child, form=ChildCreateForm, extra=4)
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,我可以单独验证每个百分比行,但我想验证总和。

我应该使用 Javascript 验证表单吗?Django有办法吗?还是最好的第三种选择?

python django validation

3
推荐指数
1
解决办法
488
查看次数

Javascript对象数组:返回值的最佳方法是什么?

我在Javascript中有一个对象数组,其中包含两个具有此结构的键:

"data": [
  {
  "description": "Unknown",
  "type": 0
  },
  {
  "description": "On",
  "type": 1
  },
  {
  "description": "Off",
  "type": 2
  },
  ...
  ]
Run Code Online (Sandbox Code Playgroud)

我想传递一个'type'数值,如果它在数组中找到它,则返回描述值.例如,如果我传递'0',我希望它返回'未知'.

这可以通过for或forEach循环轻松完成,但是JS中有一个内置函数可以让我在一行中完成它吗?

javascript

1
推荐指数
1
解决办法
56
查看次数

标签 统计

django ×1

javascript ×1

python ×1

validation ×1