Python Django forms:我如何使填写一个字段成为必要,但不能同时填写两个字段?

Python Django forms:我如何使填写一个字段成为必要,但不能同时填写两个字段?,python,django,django-forms,Python,Django,Django Forms,我想有一个选项来链接到一个文件或上传一个文件。显然你不能两者兼得。如何实现这一点? 然后,您可以在clean中检查这两个字段的值 大致如下: from django import forms from django.core.exceptions import ValidationError class MyForm(forms.Form): field_1 = forms.CharField(required=False) field_2 = forms.CharFie

我想有一个选项来链接到一个文件或上传一个文件。显然你不能两者兼得。如何实现这一点?

然后,您可以在
clean
中检查这两个字段的值

大致如下:

from django import forms
from django.core.exceptions import ValidationError


class MyForm(forms.Form):

    field_1 = forms.CharField(required=False)

    field_2 = forms.CharField(required=False)

    def clean(self):

        # Get the field values submitted
        cleaned_data = super(MyForm, self).clean()
        field_1_data = cleaned_data.get('field_1')
        field_2_data = cleaned_data.get('field_2')

        # Check that only one field is filled out.
        if field_1_data and field_2_data:
            raise ValidationError('Only fill out one field please.', code='invalid')