You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DRF中用户与面包店注册时地址设为必填字段的模型配置疑问

如何将User和Padaria的地址字段设为必填

要在User和Padaria注册时让地址(endereco)成为必填字段,你当前的字段设置允许空值(null=True, blank=True),以下是正确的修改方案:

核心逻辑

Django模型字段中,null控制数据库层是否允许空值,blank控制表单验证层是否允许空值。这两个参数的默认值都是False——也就是说,字段默认就是必填状态。

修改方式(两种任选其一)

方式1:直接移除null=True, blank=True参数

利用默认规则,移除后字段自动变为必填,代码更简洁:

User类修改后

endereco = models.OneToOneField(
        Endereco, on_delete=models.CASCADE,
        related_name='user'
)

Padaria类修改后

endereco = models.OneToOneField(
        Endereco, on_delete=models.CASCADE,
        related_name='padaria'
)

方式2:显式设置null=False, blank=False

这种方式可读性更强,其他开发者能一眼明确该字段为必填项:

User类修改后

endereco = models.OneToOneField(
        Endereco, on_delete=models.CASCADE,
        related_name='user',
        null=False, blank=False
)

Padaria类修改后

endereco = models.OneToOneField(
        Endereco, on_delete=models.CASCADE,
        related_name='padaria',
        null=False, blank=False
)

注意事项

如果数据库中已有User或Padaria数据,修改前要确保所有现有记录都关联了对应的Endereco,否则执行数据迁移会失败。可以先给现有数据补全地址,或者先保留null=True完成迁移,补完数据后再改成必填设置。

内容的提问来源于stack exchange,提问作者Arthur Medeiros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:42:41