【问题标题】:How set unnecessary field in django form?如何在 django 表单中设置不必要的字段?
【发布时间】:2014-09-05 17:53:49
【问题描述】:
class RequestForm(forms.ModelForm):
    """ Online request.
    """
    class Meta:
        model = Request
        fields = ["language", "daytime", "daysofweek", "phone", "email", "name"]
        widgets = {
                'language': forms.Select(),
                'daytime': RadioSelectNotNull(),
                'daysofweek': forms.CheckboxSelectMultiple()
       }

如何安装“电话”或“电子邮件”两个字段之一的必填项?

【问题讨论】:

    标签: python django web django-forms


    【解决方案1】:

    您的要求并不完全清楚,但如果意图要求phoneemail 中的至少一个为非空白,请使用自定义clean 方法来做到这一点:

    def clean(self):
        cleaned_data = super(ContactForm, self).clean()
        if not (cleaned_data.get('phone') or cleaned_data.get('email')):
            raise ValidationError('At least one of phone or email is required.')
        return cleaned_data
    

    【讨论】:

      【解决方案2】:

      如果您在model字段上设置blank=falsenull=false,则ModelForm会按要求处理。这些默认设置为False

      https://docs.djangoproject.com/en/dev/ref/models/fields/#blank

      【讨论】:

        猜你喜欢
        • 2011-12-02
        • 2013-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-09
        • 2014-04-11
        • 1970-01-01
        • 2018-04-18
        相关资源
        最近更新 更多