Я изо всех сил пытаюсь понять, как лучше всего делать то, что, как я думаю, я хочу сделать - теперь, возможно, у меня нет правильного понимания того, что лучше всего делать, так что если нет, не стесняйтесь выть на меня и т.д..
По сути, мой вопрос состоит в том, как правильно абстрагировать функциональность приложения, если указанная функциональность обнаружена в приложении, являющемся частью проекта?
Чтобы добавить некоторый контекст этому (этоне далеко от того, чего я пытаюсь достичь):
Предположим, я создаю веб-сайт.Мой веб-сайт выглядит и работает, и я определил base.html
шаблон и различные css-элементы в приложении django без модели.
Теперь я также пишу приложение для блога django.Я знаю, как включить его так, чтобы модели появлялись в моем текущем приложении, и я более чем счастлив, что могу использовать любой метод, который мне нравится, из различных пакетов, манипулировать моделями и выполнять с ним все Python.
Чего я не понимаю, так это как обращаться с мнениями.Кажется нелогичным, что модели хранятся где-то в другом месте, но им приходится создавать пользовательский интерфейс в моем текущем проекте (и, как следствие, в любом последующем проекте).Итак, я подумал, хорошо, добавьте urls
из папки моего приложения в мой проект, готово.
Тогда, конечно, мне нужно написать представления, и это нормально.Я могу это сделать.
Что я не могу понять, так это то, как вписываются шаблоны: в моем приложении я хочу использовать такой шаблон:
<div class="entry">
<a href=""><h2>{{ entry.Title }}</h2></a>
<p>Published on: {{ entry.date_published|date:"j F Y" }}</p>
{{ entry.body_html }}
</div>
<a href="">X comments.</a> <a href=""">Add Comment</a> <a href="">Link</a>
<div id="commentdiv">
{% if comments %}
<ul id="commentlist">
{% for comment in Comments %}
<li></li>
{% endfor %}
</ul>
{% else %}
<p>There are no comments on this entry.</p>
{% endif %}
</div>
для просмотразапись, поэтому на моем сайте я захожу на sitename.com/blog/...someparameters.../entryname' where blog is the
include in
urls.py` соответствующего корневого проекта.Все хорошо, но как мне также прикрепить шаблон из этого проекта, то есть внешний вид?Я мог бы изо всех сил и разработать базовый шаблон для приложения блога, достаточно справедливо, но как насчет навигации и т. Д.?Я мог бы захотеть включить один и тот же заголовок на каждую страницу, даже если содержимое довольно разнообразно.
Теперь я знаю о директиве {% extends "template"%} и директиве {% include template%},Почему они не работают, насколько я понимаю:
- {% extends%} - как мне узнать / предоставить то, что я хочу расширить из корневого проекта?Если вы можете предоставить механизм для этого, я думаю, что это решит проблему очень хорошо.
- {% include%} - подразумевает, что я должен предоставить представления для блога в загрузочном приложении в корневом проекте.Я действительно не хочу этого делать - я могу с таким же успехом перенести весь проект в этом случае.
Итак, мой вопрос: как мне все это собрать вместе?
Редактировать : Я думаю этот вопрос очень похож на то, что я спрашиваю, и отметил ответы.Тем не менее, они все еще не удовлетворяют.