2012-03-25 3 views
2

У меня есть две модели: одна модель vanilla Django, другая - неуправляемая модель, обертывающая представление.Как удалить модель Django, на которую ссылается неуправляемая модель вида

class A(models.Model): 
    name = models.CharField(max_length=255) 

class B(models.Model): 
    a = models.ForeignKey(A) 

    class Meta: 
     managed = False 
     db_table = 'myview' 

Все работает хорошо, пока я не пытаюсь удалить строку из A, который дает мне ошибку вроде:

django.db.utils.DatabaseError: cannot delete from view "myview" 
HINT: You need an unconditional ON DELETE DO INSTEAD rule or an INSTEAD OF DELETE trigger. 

Видимо, Django приобретает неуправляемый модель представляет собой таблицу, и, следовательно, пытаясь удалить зависимые строки, и поскольку это представление только для чтения, мой бэкэнд PostgreSQL бросает эту ошибку.

Есть ли способ обойти это?

я нашел this bug report изложение вопроса, но ни один из затычки писак не похож на работу для меня, а сама ошибка была отмечен дубликатом еще несколько иной еще нерешенной ошибки ...

ответ

3

вы пробовали on_delete=models.SET_NULL, как обходной путь?

+3

Это просмотр в режиме readonly, поэтому я не могу установить что-либо значение null, но models.DO_NOTHING работал. Благодарю. – Cerin

Смежные вопросы