【问题标题】:How can I require two - and only two - of four foreign key fields in a model to be filled?我怎样才能要求填充模型中四个外键字段中的两个,并且只有两个?
【发布时间】:2017-01-05 18:30:43
【问题描述】:

我有一个包含两个对象的简单模型。一种对象类型 (1) 只存储信息。另一个 (2) 存储对象之间的信息和连接。连接可以是 1-1、1-2 或 2-2。对象 2 有四个外键字段(往返对象 1 和 2)。因为只能在两个对象之间建立连接,所以我想在我的模型中指定不能同时填写所有四个外键,而只能组合填写两个。其他应留空。我怎样才能做到这一点?

【问题讨论】:

标签: django django-models foreign-keys


【解决方案1】:

您可以在模型级别添加一些验证(直接在save 方法中或使用验证api cf https://docs.djangoproject.com/en/1.10/ref/models/instances/#validating-objects),但这不会在数据库级别或QuerySet.update 操作期间强制执行(参见https://docs.djangoproject.com/en/1.10/ref/models/querysets/#update)。

【讨论】:

    猜你喜欢
    • 2021-04-05
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    相关资源
    最近更新 更多