django python blank=True 仍然是必需的。

18 浏览
0 Comments

django python blank=True 仍然是必需的。

这个问题已经在这里有了答案:

Django中null=True和blank=True有什么区别?

在下面的代码中,一些具有 blank=True 的字段仍然是必需的,并且不能为 Null

例子:

# Skill train timer
    class SkillTrainingTimer(models.Model):
    """
    Character Training timer,  keep track fo what skill is in training, and when it is done
    """
    character = models.ForeignKey(Character, unique=True)
    skill = models.ForeignKey(Skill, blank=True)
    trainingground = models.ForeignKey(TrainingGround, verbose_name='Training ground')
    timer = models.DateTimeField()

现在我这样做:

train_skill = SkillTrainingTimer(
        character=some_character_obj,
        trainingground=some_trainingground_obj,
        timer = fatetime.datetime.now()
)
train_skill.save()

它开始抱怨“skill”不能为空。我在许多模型和函数中都有类似情况,到目前为止我只是将一些无用的数据转储进去。

admin 更改状态以发布 2023年5月22日
0
0 Comments

你需要在字段定义中添加null=True参数,最好在syncdb之前(或者你可以使用South进行迁移)

skill = models.ForeignKey(Skill, blank=True, null=True)

0
0 Comments

null=True在您的数据库中为列设置NULL。

blank=True确定字段在表单中是否必填。这包括管理员和您自己的自定义表单。如果blank=True,则该字段不是必需的,而如果为False,则该字段不能为空。希望这可以帮助!

0