Как я могу получить обратный URL для шаблона Django Flatpages

var assembly = System.Reflection.Assembly.GetExecutingAssembly();
var assemblyPath = assembly.GetFiles()[0].Name;
var assemblyDir = System.IO.Path.GetDirectoryName(assemblyPath);
19
задан Travis 17 July 2009 в 17:33
поделиться

5 ответов

Включите плоские страницы в корневой urlconf:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    ('^pages/', include('django.contrib.flatpages.urls')),
)

Затем, по вашему мнению, вы можете вызвать обратный вызов следующим образом:

from django.core.urlresolvers import reverse

reverse('django.contrib.flatpages.views.flatpage', kwargs={'url': '/about-us/'})
# Gives: /pages/about-us/

В шаблонах используйте тег {% url%} (который вызывает обратный внутренне):

<a href='{% url django.contrib.flatpages.views.flatpage url="/about-us/" %}'>About Us</a>
23
ответ дан 30 November 2019 в 02:16
поделиться

Напишите ваши основные URL-адреса conf, чтобы они указывали на ваши плоские страницы. Предположим, он находится под страницами:

urlpatterns = patterns('',
...
    url(r'^pages/', include('project.pages.urls')),
...
)

Затем напишите ваши плоские страницы как обычно:

urlpatterns = patterns('django.views.generic.simple',
    url(regex=r'^resume/$',     view='direct_to_template', kwargs={'template': 'resume.html'}, name='resume'),
    url(regex=r'^about/$',      view='direct_to_template', kwargs={'template': 'about.html'},  name='about'),
    url(regex=r'^books/$',      view='direct_to_template', kwargs={'template': 'library.html'},name='books'),
)

Тогда ваш шаблон просто ссылается на них обычным образом:

<div id="pages">
...
    <div class="pagelinks">
        <a href="{% url about %}">ABOUT</a>
    </div>
</div>
2
ответ дан 30 November 2019 в 02:16
поделиться

Я думал, что преимущество Flatpages в том, что вам не нужно создавать какие-либо заглушки просмотра или подтверждения URL-адресов? В противном случае это немного бессмысленно ... если ты ... https://github.com/0sn/nameremoved/wiki/flatpages

2
ответ дан 30 November 2019 в 02:16
поделиться

Единственным истинным ответом является , от которого зависит .

Подготовленные высказывания - прекрасные звери, когда речь заходит о MySQL. Существует большое количество факторов, определяющих кэширование подготовленной инструкции.

Общая идея заключается в том, что если версия < 5,1,17, подготовленная инструкция никогда не кэшируется в кэше запроса, а если используется > = 5,1,17, это зависит от .

См. следующую страницу в руководстве MySQL 5,1:

http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html

-121--2404228-

Обычно существуют преобразования времени выполнения, так как битовые представления, как правило, не совместимы (за исключением того, что двоичные 0, как правило, 0 и 0,0). Стандарты C и C++ имеют отношение только к значению, а не к представлению и определяют в целом разумное поведение. Помните, что большое значение int обычно не может быть точно представлено в float , а большое значение float не может быть представлено как int .

Поэтому:

Все преобразования по значению, а не по биту узоров. Не беспокойся о узорах.

Не беспокойтесь об энданнесе, так как это вопрос побитового представления.

Преобразование int в float может потерять точность, если целое значение является большим в абсолютном значении; он менее вероятен с двойным , так как двойной более точен и может представлять много более точных чисел. (Детали зависят от того, какие представления система фактически использует.)

Определения языка ничего не говорят о битовых узорах.

Преобразование float в int также является вопросом значений, а не бит узоров. Точная плавающая точка 2.0 будет преобразована в интеграл 2, потому что именно так настраивается реализация, а не из-за битовых узоров.

-121--1672147-

Предпочитаю следующее решение (требуется Джанго > = 1,0).

settings.py

INSTALLED_APPS+= ('django.contrib.flatpages',)

urls.py

urlpatterns+= patterns('django.contrib.flatpages.views',
    url(r'^about-us/$', 'flatpage', {'url': '/about-us/'}, name='about'),
    url(r'^license/$', 'flatpage', {'url': '/license/'}, name='license'),
)

В шаблонах

[...]
<a href="{% url about %}"><span>{% trans "About us" %}</span></a>
<a href="{% url license %}"><span>{% trans "Licensing" %}</span></a>
[...]

или в коде

from django.core.urlresolvers import reverse
[...]
reverse('license')
[...]

Это путь вам не нужно использовать django.contrib.flatpages.middleware.FlatpageFallbackMiddleware , и реверс работает как обычно, не записывая столько кода, сколько в других решениях.

Ура.

25
ответ дан 30 November 2019 в 02:16
поделиться

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

{{ flatpage.url }}

Ремаппинг URL плоских страниц в urls.py, а затем необходимость использовать обратное как бы уничтожает цель приложения flatpages.

1
ответ дан 30 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: