Одно и то же имя для разных моделей в разных приложениях Django
У меня есть абстрактные приложение 1 и приложение 2 в Джанго проекте. Мне необходимо, чтобы в каждом приложении были свои таблицы с именами Task и File. И таблица File в каждом приложении ссылалась через ForeignKey на таблицу Task в своём же приложении. Выглядит это примерно так:
app1.models
class Task(BasicTask):
task_id = models.IntegerField(primary_key=True)
class File(BasicFile):
file_id = models.AutoField(primary_key=True)
task = models.ForeignKey(Task, on_delete=models.CASCADE, related_name='Task_one')
app2.models
class Task(BasicTask):
task_id = models.IntegerField(primary_key=True)
class File(BasicFile):
file_id = models.AutoField(primary_key=True)
task = models.ForeignKey(Task, on_delete=models.CASCADE, related_name='Task_two')
main.models
class BasicTask(models.Model):
name = models.TextField()
priority = models.IntegerField()
status = models.IntegerField(default=0)
user = models.ForeignKey(
CustomUser, on_delete=models.CASCADE, null=True, related_name='+')
def __str__(self):
return f"{self.id}. {self.name}"
class BasicFile(models.Model):
unique_id = models.TextField()
status = models.IntegerField(default=0)
user = models.ForeignKey(
CustomUser, on_delete=models.CASCADE, null=True, related_name='+')
content = models.TextField()
def __str__(self):
return f"{self.id}. {self.unique_id}"
Проблема в том, что при создании миграций я получаю следующие ошибки:
ERRORS:
app2.Task.basictask_ptr: (fields.E304) Reverse accessor for 'app2.Task.basictask_ptr' clashes with reverse accessor for 'app1.Task.basictask_ptr'.
HINT: Add or change a related_name argument to the definition for 'app2.Task.basictask_ptr' or 'app1.Task.basictask_ptr'.
app2.Task.basictask_ptr: (fields.E305) Reverse query name for 'app2.Task.basictask_ptr' clashes with reverse query name for 'app1.Task.basictask_ptr'.
HINT: Add or change a related_name argument to the definition for 'app2.Task.basictask_ptr' or 'app1.Task.basictask_ptr'.
app1.Task.basictask_ptr: (fields.E304) Reverse accessor for 'app1.Task.basictask_ptr' clashes with reverse accessor for 'app2.Task.basictask_ptr'.
HINT: Add or change a related_name argument to the definition for 'app1.Task.basictask_ptr' or 'app2.Task.basictask_ptr'.
app1.Task.basictask_ptr: (fields.E305) Reverse query name for 'app1.Task.basictask_ptr' clashes with reverse query name for 'app2.Task.basictask_ptr'.
HINT: Add or change a related_name argument to the definition for 'app1.Task.basictask_ptr' or 'app2.Task.basictask_ptr'.
Подскажите, пожалуйста, как можно исправить данные ошибки?