Определите отношение ManyToMany в другом приложении в Django - PullRequest
0 голосов
/ 02 июля 2010

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

Я определил ProjectMembership в приложении «Роли» как пользовательскую модель отношений ManyToMany.Но как я могу определить поле M2M в модели пользователя или проекта с помощью объявления through?

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

Ответы [ 2 ]

1 голос
/ 02 июля 2010

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

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

1 голос
/ 02 июля 2010

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

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

Если вы, однако, хотите, чтобы эти функции (они не нужны)тогда вам следует изменить либо модель пользователя, либо модель проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...