Определить отношение ManyToMany в другом приложении в Django

У меня есть приложения "Пользователи" и "Проекты", и я хотел бы определить другое приложение под названием "Роли" для расширения django-auth для каждого проекта.

Я определил ProjectMembership в приложении Roles как пользовательскую модель отношений ManyToMany. Но как я могу определить поле M2M в модели пользователя или проекта с through декларация?

Итак, вопрос в том, можем ли мы определить поле модели из другого приложения?

2 ответа

Решение

Я не думаю, что это возможно, и даже если это возможно, то, на мой взгляд, это очень плохое решение.

Я думаю, что ваш лучший вариант - создать модель ProjectMembership с двумя FK, один для пользователя и один для проекта. Тогда у вас есть отношение M2M вручную, и вы не можете использовать все приятные функции Django для работы с отношениями M2M.

Однако если вам нужны эти функции (они не нужны), вам следует изменить либо модель "Пользователь", либо модель проекта.

Да, вы можете, Django автоматически создаст для вас обратную связь. использование related_name дать ему имя!

Модификация (исправление денег) User модель не очень хорошая идея Если вы хотите расширить его, сделайте это либо через:

Другие вопросы по тегам