【问题标题】:What parameters does Django's models.DO_NOTHING expect?Django 的 models.DO_NOTHING 期望什么参数?
【发布时间】:2016-03-04 18:27:48
【问题描述】:

我搜索了the documentation,但没有找到任何参数说明。

DO_NOTHING 的实现正是这样做的,所以我传递的内容无关紧要,但对于其他方法(例如 CASCADE),它们实际上会被使用。

我找到的最接近的解释是 CASCADE 的 a discussion

collectorfieldsub_objsusing 是哪些数据类型,我传递哪些值?

编辑:

我在我的模型中使用它,如下所示:

class Office(models.Model):

    #   Office locations have a name, and a location.

    display_name = models.CharField(max_length=255)

    location = models.OneToOneField(
        GeoLocation,
        on_delete=models.DO_NOTHING(None, None, None, None)
    )

【问题讨论】:

  • 为什么要这样称呼?这只是on_delete 的可能值,以便 django 知道删除时要做什么。
  • 我不相信这些是由用户调用的。如果我没记错的话,你将它作为引用传递给 models.ForeignKey 构造函数并调用它。
  • 在我的模型中,我正在使用它。我在我的问题中添加了一个示例。

标签: python django


【解决方案1】:

你不应该调用models.DO_NOTHING,你应该把它作为一个值传递:

location = models.OneToOneField(
    GeoLocation,
    on_delete=models.DO_NOTHING
)

它是一个函数这一事实是一个实现细节,而不是 API 的一部分,这就是这些参数未记录在案的原因。

【讨论】:

    猜你喜欢
    • 2021-03-04
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    相关资源
    最近更新 更多