Django generi c отношения, уникальные вместе и абстрактные модели - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть модель тега и промежуточная модель, чтобы связать ее

class Tag(models.Model):
    name = models.CharField(max_length=255)
    slug = models.CharField(max_length=255, blank=True)

class TagIntermediate(models.Model):
    # Relation to custom content model
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    customcontent = GenericForeignKey('content_type', 'object_id')

    # Relation to tag
    tag = models.ForeignKey(Tag, on_delete=models.CASCADE)

    class Meta:
        unique_together = ["content_type", "object_id", "tag"]

Я добавляю это к абстрактному базовому классу

class BaseModel(models.Model):
    blog_tags = GenericRelation('TagIntermediate')

    class Meta:
        abstract = True  

И затем я определяю две производные от него модели

class ModelOne(BaseModel):
    model_one_field = models.CharField()

class ModelTwo(BaseModel):
    model_two_field = models.CharField()

Когда я сейчас создаю объект Tag и добавляю его к объекту ModelOne и объекту ModelTwo, я получаю сообщение, инициируемое моим определением «уникально вместе»: комбинация content_type, object_id и tag уже существует. Почему? ModelOne и ModelTwo должны иметь два разных content_types, верно? Или я что-то забыл?

Я использую Django Версия 3.0.4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...