2017-02-05 15 views
2

Попытка перенести поле из каскада в «некаскадное», кажется, игнорируется (Django 1.10).Модели Django - как отменить on_delete = models.CASCADE

Предыдущая модель:

class Run(models.Model): 
    ... 
    analysis_retention = models.ForeignKey('analysis_retention.AnalysisRetention', 
              null=True, default=None, on_delete=models.CASCADE) 

Новая модель:

class Run(models.Model): 
    ... 
    analysis_retention = models.ForeignKey('analysis_retention.AnalysisRetention', 
              null=True, default=None) 

"manage.py makemigrations" не обнаруживает изменений. Попытка явного Никакого не помогает.

Каким будет способ удаления каскадов?

Благодаря

ответ

2

CASCADE это значение по умолчанию для on_delete аргумента см source. Поэтому удаление on_delete=models.CASCADE не будет иметь эффекта. Вам необходимо указать значение on_delete в коде:

analysis_retention = models.ForeignKey('analysis_retention.AnalysisRetention', 
             null=True, default=None, on_delete=models.SET_NULL) 
+1

Работало. Спасибо. – user3139774