Найти - Пользователи
Полная версия: Передача параметров
Начало » Django » Передача параметров
1
Saff
Сразу скажу что новичок в djangjo, но читал оочень много манов. Многое мог непонять, поэтому задаю ворпрос:
Предположим есть у меня главнфй шаблон, я хочу сделать для него универсальное меню, что бы по нажатию выделялся пункт на котором я нахожусь. Я написал кастом тег для него, но вот возникла трабла, как мне в него передать ид'шник текущщей страницы, пытался передать параметра типа: {% main_menu page.id %}, но ничего не получилось ((((((((И вообще интересно как решают подобные задачи. Извеняюсь если повтор, в форуме не нашёл ответа(может плохо искал? )) )
Saff
Всмысле принт?Тут то и проблема, я наверное не совсем корректно уточнил. Я непонимаю как мне По факту передать этот id ((((( То есть например возмём за пример простое меню. о нажатию на него яваскрипт задаёт хайдену свой id и после постит форму. как мне достучаться до этой переменной (это само собой будет requesy)из шаблона?
Saff
угу (((
Ferroman
темплейты view и модель в студию
Saff
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)
Александр Кошелев
http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#shortcut-for-simple-tags
Saff
Спасибо, заработало! Как то непонял эту часть когда читал наверное ) Получается что параметры такого вида можно передавать только simple тегу?
Александр Кошелев
Saff
Получается что параметры такого вида можно передавать только simple тегу?
Параметры можно передавать любому тегу. Этот шорткат скрывать всю грязную работу и дает сосредоточиться на БЛ.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB