0

Я хочу иметь внешний ключ для родительского класса, тем самым позволяя также запрашивать дочерние классы. Все остальные решения кошмарны. Я попытался сделать это (Destination также родительский класс, который имеет # детских классов, которые я хочу коснуться):django model inheritance & FK, не удалось создать уникальный индекс

class Destination(PolymorphicModel) 

class Account(Destination) 

class Organization(Destination) 

class Person(Destination) 

class Transaction(models.Model) 
    destination = models.ForeignKey(Destination, verbose_name="Destination", null=True, blank=True, 
           related_name="CompletedTransaction_Destination_FK") 

Я ссылки назначения в других местах. Это сообщение об ошибке я получаю, когда я пытаюсь перенести:

psycopg2.IntegrityError: не удалось создать уникальный индекс «baseapp_organization_organization_destination_ptr_id_key» подробность: Ключ (organization_destination_ptr_id) = (1) дублируется.

Я хотел бы, если бы я мог сделать класс назначения

abstract = True 

, но тогда я не могу иметь внешний ключ. Мне нужно иметь возможность выбирать все эти пункты назначения, и им нужно оставаться отдельными реальными моделями в базе данных.

Я также пробовал GenericRelations, но это оказалось кошмаром, как я сказал ранее.

Чувствую, что я могу как-то обойти эту ошибку, хотя бы любую помощь?

ответ

0

Решение, и я предполагаю, что это применимо к другим ошибкам, где индекс не может быть создан, заключается в том, чтобы стереть базу данных, удалить все миграции. Это была боль, чтобы быть уверенным, но теперь я могу сделать:

destinations = Destination.objects.all() 

и это даст мне все объекты, так как согласно django polymorphic

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