У меня есть две таблицы:Отбрасывание внешнего ключа в Django
class Foo(models.Model):
pass
class Bar(models.Model):
foobar = models.ForeignKey(Foo, unique=True)
barfoo = models.ForeignKey(Foo, unique=True)
Валидация гарантирует, что никогда не Foo
, что является одновременно foobar
и barfoo
. Мне нужно удалить модель Bar
и все Foo
s, которые являются barfoo
s. Мой подход состоит в том, чтобы удалить ограничение внешнего ключа с Bar.barfoo
, запустить некоторый SQL, чтобы удалить все Foo
s, которые являются barfoo
, а затем удалить модель. Тем не менее, я не могу найти что-либо в django docs для переноса для динамически созданных ограничений внешнего ключа Django. Идеи?
Не получив ответа, я применил обходное решение, скопировав поверх foobar_id во временное целое поле, а затем полностью удалив поле внешнего ключа. Было бы неплохо иметь более прямое решение. – astex