Django: нужна помощь, чтобы приложения не зависели друг от друга - PullRequest
4 голосов
/ 21 мая 2010

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

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

Моя проблема заключается в интеграции двух. У меня есть базовый шаблон в приложении учетной записи, основанный на общем представлении, в котором перечислены объекты учетной записи и их балансы. В этом шаблоне я хочу сгруппировать учетные записи по семейству и показать итоги для всех учетных записей, принадлежащих данному семейству.

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

1 Ответ

0 голосов
/ 22 мая 2010

Вот то, что я до сих пор работаю:

class AccountGroup(models.Model):
    accounts = models.ManyToManyField(Account)
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')

Документировано здесь . Таким образом, учетные записи могут быть сгруппированы по всему, что у них общего во внешних приложениях. В моем случае, когда я создаю группу учетных записей, я устанавливаю для content_type семейство, а для object_id - конкретный экземпляр семейства, по которому он должен быть сгруппирован. Представление - это простое обобщенное представление.

...