Как получить current_app для использования с реверсом в мультиразвертываемом допускающем повторное использование приложении Django?

Я пишу допускающее повторное использование приложение. И я хочу развернуть его несколько раз.

Вот urls.py:

urlpatterns = patterns('',
(r'^carphotos/', include('webui.photos.urls', app_name='car-photos') ),
(r'^userphotos/', include('webui.photos.urls',  app_name='profile-photos') ),)

и photos/urls.py:

urlpatterns = patterns('webui.photos.views',
url(r'^$', album_list, name="album-list" )
url(r'^newalbum/$', album_page, {'create': True}, name="album-create"),)

На представлении album_list я хочу показать URL для создания нового альбома album_page.

Я нашел, что должен использовать параметр current_app обратной функции для получения надлежащего URL.

Но как получить этот current_app? Я думал, что ответ является чем-то простым. Но я не могу найти его в django документации.

Спасибо, Nick

8
задан Nike 8 January 2010 в 19:44
поделиться

3 ответа

$now = time(); // or your date as well
$your_date = strtotime("2010-01-31");
$datediff = $now - $your_date;

echo round($datediff / (60 * 60 * 24));
-121--1785625-

Используется:)

$days = (strtotime($endDate) - strtotime($startDate)) / (60 * 60 * 24);
print $days;

Теперь он работает

-121--1785644-

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

Имеется реализация подключаемых приложений, образец: http://github.com/nowells/django-pluggables . Это выглядит слишком сложно для меня.

Поэтому я решил перенести повторяющиеся функциональные возможности на пользовательские тэги и дублирующие шаблоны для каждого использования моего приложения. Я надеюсь, что использование пользовательских тэгов и расширение функции помогут мне следовать принципу DRY.

-3
ответ дан 5 December 2019 в 23:15
поделиться
[

]В ваших урлах есть другое []имя_приложения [], хотя это одно и то же приложение. Установите []app_name[] на то же самое, и установите []namespace[] уникально для каждого экземпляра. Например[

] [
urlpatterns = patterns('',
(r'^carphotos/', include('webui.photos.urls', app_name="webui_photos", namespace='car-photos') ),
(r'^userphotos/', include('webui.photos.urls', app_name="webui_photos", namespace='profile-photos') ),)
] [

]Затем укажите аргумент []current_app[] при использовании обратного. Смотрите []http://docs.djangoproject.com/en/dev/topics/http/urls/#reverse[] и []http://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces[][

]. [

] [редактирование] после повторного прочтения вопроса:[

] [

]вам не нужно указывать аргумент []current_app[], если вы используете тег []{% url %}[]. Насколько я могу судить, она автоматически получит доступ к шаблонной переменной с именем []current_app[], которая автоматически устанавливается на основе сопоставленного url.[

].
1
ответ дан 5 December 2019 в 23:15
поделиться

Луа может быть хорошим решением. Мне действительно интересно, насколько сложной может быть интеграция вашего механизма правил с языком сценариев, который позволяет пользователям писать свои собственные правила.

Хорошим подходом может быть встраивание всего (механизм правил тоже) в интерпретатор сценариев, в противном случае вы бы написали много кода, чтобы объединить то, что пользователь записывает в сценарий, с соответствующими правилами, используемыми в вашей программе.

Однако то , чтобы намереваться такая программируемость требует большого внимания к тому, что ваш язык должен быть в состоянии сделать, начиная с небольшого ядра утилит и затем расширяя его; или вы действительно можете многое планировать, прежде чем начать всю реализацию, но для моего опыта (я писал, как 3-4 переводчика до сих пор) лучший способ - это подогнать его при разработке, конечно, с обратной связью пользователей: это будет необходимо, потому что вы можете предположить, насколько они хороши, но я бы на это не рассчитывал.

-121--3926539-

Я обычно делаю что-то подобное:

$("#my-div a").click(function(){
    var match;
    if (match = $(this).attr('id').match(/link-(\d+)/)) {
      var number = parseInt(match[1],10);
      alert(number);
    }
});
-121--4716683-

Я считаю, что это то, для чего сайты рамок.

-4
ответ дан 5 December 2019 в 23:15
поделиться
Другие вопросы по тегам:

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