У меня есть модель тега и промежуточная модель, чтобы связать ее
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