【问题标题】:Django: ForeignKey() or ManyToMany() in this case? Or, other?Django:在这种情况下是 ForeignKey() 还是 ManyToMany()?或其他?
【发布时间】:2011-01-08 13:55:57
【问题描述】:

我有一个类似这样的模型:

class ReturnAuthorization(models.Model):
    custom_id = models.CharField(max_length=40)

class RMAAPILog(models.Model):
    return_authorization = models.ForeignKey(ReturnAuthorization)

如果我要delete() 退货授权,我不能让它删除与之相关的所有RMAAPILog()s。在这种情况下,它们会被删除。可能有很多次尝试从外部 API 获取 RMA(每个 ReturnAuthorization() 有很多 RMAAPILog()s,但每个 RMAAPILog() 只能有一个 ReturnAuthorization(),因为它是一个尝试授权的日志一个特定的ReturnAuthorization()。有什么更好的方法来做到这一点,还是我想错了?

【问题讨论】:

    标签: django design-patterns database-design


    【解决方案1】:

    【讨论】:

    • 糟糕,这不对。那篇文章是关于一个有相反问题的人。他有一个模型,他需要这种级联,但它不起作用。我需要相反的效果。我需要删除父级而不删除子级。
    • 抱歉,我不知道这是否匹配。但是其中一个答案不适用吗? “Django 的 ForeignKey 管理器有一个名为 clear() 的方法,它可以从相关对象集中删除所有对象。首先调用它,然后删除你的对象应该可以工作。” - stackoverflow.com/questions/1006135/…
    • code.djangoproject.com/ticket/7539 中有一个补丁,用于添加对模型中控制 ON DELETE 行为的支持。
    • 甜,那个补丁就是我要找的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    相关资源
    最近更新 更多