реализация тега шаблона в универсальном приложении - django - PullRequest
0 голосов
/ 17 июня 2009

Я разработал некоторый код, который основывается на приложении для комментариев, например, обработчики запросов ajax. Этот код находится в отдельном приложении, которое мы можем назвать «comments2». Конфигурация URL-адреса проекта структурирована таким образом, что все вызовы / комментарии направляются на представления этого приложения. Это работает без проблем.

Совсем недавно я создал новую страницу с комментариями, помеченными как неуместные.

Я задумал, что лучше всего это сделать, написав тег шаблона включения, и написал один. Это работает так:

{% display_flagged_comments 'market' %}

Этот тег находится внутри соответствующего шаблона основного приложения.

Как видно из кода выше, я передаю, к какой модели ( Рынок в данном случае) принадлежат комментарии, так что приложение comments2 остается универсальным.

У меня есть три вопроса, по которым мне нужно руководство:

Во-первых, я чувствую, что аргумент модели, заключенный в кавычки ( 'market' ), делает код несколько менее элегантным. В коде аргумент преобразуется в модель:

#template tag
def show_comments(modelname):
    model = ContentType.objects.get(model=modelname)
    ... # get comments and return them 

Во-вторых, поскольку все запросы с / comments направлены в приложение comment2, мне нужно разработать другой URL для этой страницы (он находится внутри основного приложения), например / managecomments. Я считаю, что делать это тоже не элегантно.

В-третьих, я хочу знать, пошел ли я по правильному пути или есть лучший способ реализовать то, что я пытаюсь сделать.

Заранее спасибо.

1 Ответ

0 голосов
/ 18 июня 2009

ContentTypeManager несколько решил вашу первую проблему для вас. Вы можете использовать метод get_for_model, который принимает как класс, так и экземпляр. Читайте больше на документах по объектам .

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