Python 如何检查django模型中的字段?

Python 如何检查django模型中的字段?,python,django,model,Python,Django,Model,我有一个这样的模型。我想检查团队的名称是否为俄罗斯,然后您需要指定团队的名称 我想检查用户何时将数据输入表单 我怎么查 RUSSIA = 'RUS' USA = 'USA' GERMANY = 'GER' COUNTRY = ( (RUSSIA, "Russia"), (USA, "USA"), (GERMANY, "Germany"), ) class Country(models.Model): country = models.CharField(

我有一个这样的模型。我想检查团队的名称是否为俄罗斯,然后您需要指定团队的名称


我想检查用户何时将数据输入表单

我怎么查

RUSSIA = 'RUS'
USA = 'USA'
GERMANY = 'GER'


COUNTRY = (
    (RUSSIA, "Russia"),
    (USA, "USA"),
    (GERMANY, "Germany"),
)


class Country(models.Model):

    country = models.CharField(max_length=3, choices=COUNTRY, default=RUSSIA)
    name_of_team = models.CharField(max_length=255, blank=True, null=True)

    def __unicode__(self):
        return self.name_of_team

您只需对国家/地区模型使用ModelForm的clean方法:

有关表单验证的详细信息,请参阅

为了清晰起见,我还建议将选择常量移到国家/地区模型中:

class Country(models.Model):

    RUSSIA = 'RUS'
    USA = 'USA'
    GERMANY = 'GER'


    COUNTRY_CHOICES = (
        (RUSSIA, "Russia"),
        (USA, "USA"),
        (GERMANY, "Germany"),
    )

    country = models.CharField(max_length=3, choices=COUNTRY_CHOICES,
        default=self.RUSSIA)
然后在您的表格中,您可以执行以下操作:

. . .

def clean(self):
    . . .

     if country == Country.RUSSIA and not name_of_team:
        self.add_error('name_of_team', 'You must supply a team name')

    return cleaned_data

这在很大程度上是个人喜好的问题,但在我看来,它具有更好的可读性。

您想什么时候检查这一点?你能澄清你的问题吗?你问什么还不完全清楚。您正在尝试验证输入吗?如果您使用了一些相关的表单来创建国家,请将其包括在内。我想检查用户何时在表单中输入数据@Shuttle87听起来您需要一个带有自定义验证的modelform:
. . .

def clean(self):
    . . .

     if country == Country.RUSSIA and not name_of_team:
        self.add_error('name_of_team', 'You must supply a team name')

    return cleaned_data