На этот раз я думаю, что я не глупый, а настоящий конфликт.У меня есть следующий код (упрощенно):
from django.db import models
class Alpha(models.Model):
relation = models.ForeignKey('Delta', related_name = 'reverse_relation', blank = True, null = True)
class Meta:
abstract = True
class Beta(Alpha):
pass
class Gamma(Alpha):
pass
class Delta(models.Model):
pass
Проблема в том, что Delta.reverse_relation может ссылаться на экземпляр Beta или экземпляр Gamma.Я бы как-то должен был предоставить несколько значений related_name (или того, которое зависит от имени класса). Я думаю, что проблема ясна, но чтобы быть полной, ошибка (при запуске syncdb): app.beta: Accessor для поля 'отношение' конфликтуетсо связанным полем «Delta.reverse_relation».Добавьте аргумент related_name к определению для «отношения».
app.beta: Обратное имя запроса для поля «отношение» конфликтует со связанным полем «Delta.reverse_relation».Добавьте аргумент related_name к определению для «отношения».
app.gamma: Accessor для поля «отношения» конфликтует со связанным полем «Delta.reverse_relation».Добавьте аргумент related_name к определению для «отношения».
app.gamma: Обратный запрос имени для поля «отношение» конфликтует со связанным полем «Delta.reverse_relation».Добавьте аргумент related_name к определению для «отношения».
Можно ли вообще поместить ForeignKey в родительскую альфу или это единственный способ вырезать и вставить этот код в бета и гамму?Я предпочитаю этого не делать, потому что это своего рода побеждает точку наследования, если я не могу определить в родительской половине поля, которые разделяют все дети.
Любая помощь очень ценится!
(Если кто-то может прокомментировать, почему сообщения об ошибках не находятся в поле кода, я это исправлю.)