Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:本例中是ForeignKey()还是ManyToMany()?或者,其他?_Django_Design Patterns_Database Design - Fatal编程技术网

Django:本例中是ForeignKey()还是ManyToMany()?或者,其他?

Django:本例中是ForeignKey()还是ManyToMany()?或者,其他?,django,design-patterns,database-design,Django,Design Patterns,Database Design,我有一个这样的模型: class ReturnAuthorization(models.Model): custom_id = models.CharField(max_length=40) class RMAAPILog(models.Model): return_authorization = models.ForeignKey(ReturnAuthorization) 如果我要delete()一个返回授权,我不能让它删除所有与其相关的RMAAPILog()。在这种情况下

我有一个这样的模型:

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

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

如果我要delete()一个返回授权,我不能让它删除所有与其相关的
RMAAPILog()
。在这种情况下,它们会被删除。可以多次尝试从外部API获取RMA(每个
ReturnAuthorization()
都有很多
RMAPILOG()
s),但每个RMAPILOG()当然只能有一个ReturnAuthorization(),因为它是授权特定
ReturnAuthorization()的尝试日志
。做这件事最好的方法是什么,还是我想的全错了?

相关的问题:

哦,那不对。那篇文章是关于一个家伙有相反的问题。他有一个模型,他需要这个级联,但它不起作用。我需要相反的效果。我需要删除父对象,而不删除子对象。抱歉,我无法判断这是否匹配。但其中一个答案不适用吗?“Django的ForeignKey管理器有一个名为clear()的方法,可以从相关对象集中删除所有对象。先调用该方法,然后删除对象应该会起作用。”-中有一个补丁,用于添加对模型中控制删除行为的支持。很好,我正在寻找该补丁。谢谢。