Форум сайта python.su
Сразу скажу что новичок в djangjo, но читал оочень много манов. Многое мог непонять, поэтому задаю ворпрос:
Предположим есть у меня главнфй шаблон, я хочу сделать для него универсальное меню, что бы по нажатию выделялся пункт на котором я нахожусь. Я написал кастом тег для него, но вот возникла трабла, как мне в него передать ид'шник текущщей страницы, пытался передать параметра типа: {% main_menu page.id %}, но ничего не получилось ((((((((И вообще интересно как решают подобные задачи. Извеняюсь если повтор, в форуме не нашёл ответа(может плохо искал? )) )
Офлайн
Всмысле принт?Тут то и проблема, я наверное не совсем корректно уточнил. Я непонимаю как мне По факту передать этот id ((((( То есть например возмём за пример простое меню. о нажатию на него яваскрипт задаёт хайдену свой id и после постит форму. как мне достучаться до этой переменной (это само собой будет requesy)из шаблона?
Отредактировано (Ноя. 14, 2008 21:18:59)
Офлайн
угу (((
Офлайн
темплейты view и модель в студию
Офлайн
model.py:
from django.db import models
class Menu(models.Model): #for menu
name = models.CharField(max_length=15)
url = models.CharField(max_length=40)
def __str__(self):
return self.name
def __unicode__(self):
return self.name
class Admin:
list_display = ('url')
.....
{% load menu_tags %}
{% show_menu (вот тут непонимаю как мне переменную реквеста передать )) ) %}
.....
<!-- menu -->
<div id="menu">
<ul>
{% for i in menu %}
<li><a href="{{ i.url }}">{{ i.name }}</a></li>
{% endfor %}
</ul>
</div>
def do_show_menu(parser,token):
tag_name, menu_id = token.split_contents()
print menu_id
return menuShow(menu_id)
class menuShow():
def _init__(self,id_menu=0):
self.id_menu = id_menu
def render(self,context):
t = template.loader.get_template('site_core/menu.html')
menu = Menu.objects.all()
return t.render(Context({'menu': menu}))
register = template.Library()
register.tag('show_menu', do_show_menu)
Отредактировано (Ноя. 14, 2008 22:47:11)
Офлайн
Офлайн
Спасибо, заработало! Как то непонял эту часть когда читал наверное ) Получается что параметры такого вида можно передавать только simple тегу?
Офлайн
SaffПараметры можно передавать любому тегу. Этот шорткат скрывать всю грязную работу и дает сосредоточиться на БЛ.
Получается что параметры такого вида можно передавать только simple тегу?
Офлайн