У меня много моделей с функцией голосования, поэтому я создал такую структуру:
class Voteable(models.Model):
likes_balance = models.IntegerField(default=0, editable=False)
votes = models.ManyToManyField(User, blank=True, editable=False)
likes = models.ManyToManyField(User, blank=True, editable=False)
class Meta:
abstract = True
class Item(Voteable):
title = models.CharField(max_length=20, db_index=True)
description = models.TextField(max_length=1000)
contact_user = models.ForeignKey(User, null=True, blank=True)
class Meta:
abstract = True
class Movie(Item):
cover = models.ImageField(upload_to='images/covers/')
class Car(Item):
seller = models.CharField(max_length=50)
Когда я пытаюсь создать таблицы с помощью "python manage.py syncdb", я получаю сообщение об ошибке:
Столкновение для поля m2m «лайки» конфликтует со связанным полем «User.movie_set». Добавьте аргумент related_name к определению «likes».
Конечно, у меня гораздо больше полей в классе Item, поэтому я не хочу копировать их все во все подклассы и просто установить related_name, как предложено в ошибке.
Есть предложения, как с этим бороться?