Django 管理模型字段验证

Django admin model field validation

我正在使用 Django 管理模板开发 Web 应用程序。在该应用程序中,我需要基于另一个模型字段输入的模型字段验证。举个例子,如果用户在 file_required 模型字段中提供“yes”作为输入值,则 Browsefile 模型字段应该是被视为必填字段。如果用户在 file_required 模型字段中提供“否”作为输入值,则应将 Browsefile 模型字段视为可选字段。请指教

您可以通过设置 blank=TrueBrowsefile 字段定义为模型中的可选字段,然后制作一个验证表单来检查您的 file_required 字段,如果用户在 Browsefile 中提供了“是”而没有输入任何内容,那么您将引发 ValidationError“此字段是必需的”。

您可以通过检查表单的 cleaned_data 来测试用户输入的值,然后如果您设置的条件不是必需的,则执行您想要的操作:

class YourModelForm(forms.ModelForm):
    def clean(self):
        file_required = self.cleaned_date['file_required']
        if file_required == "yes" and not self.cleaned_data['Browsefile']:
            raise forms.ValidationError({'Browsefile': "This field is mandatory"})

并且不要忘记在 admin.py class 中添加 form = YourModelForm