Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2008 20:50:40

Saff
От:
Зарегистрирован: 2008-03-18
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров

Сразу скажу что новичок в djangjo, но читал оочень много манов. Многое мог непонять, поэтому задаю ворпрос:
Предположим есть у меня главнфй шаблон, я хочу сделать для него универсальное меню, что бы по нажатию выделялся пункт на котором я нахожусь. Я написал кастом тег для него, но вот возникла трабла, как мне в него передать ид'шник текущщей страницы, пытался передать параметра типа: {% main_menu page.id %}, но ничего не получилось ((((((((И вообще интересно как решают подобные задачи. Извеняюсь если повтор, в форуме не нашёл ответа(может плохо искал? )) )



Офлайн

#2 Ноя. 14, 2008 21:18:35

Saff
От:
Зарегистрирован: 2008-03-18
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров

Всмысле принт?Тут то и проблема, я наверное не совсем корректно уточнил. Я непонимаю как мне По факту передать этот id ((((( То есть например возмём за пример простое меню. о нажатию на него яваскрипт задаёт хайдену свой id и после постит форму. как мне достучаться до этой переменной (это само собой будет requesy)из шаблона?



Отредактировано (Ноя. 14, 2008 21:18:59)

Офлайн

#3 Ноя. 14, 2008 21:29:51

Saff
От:
Зарегистрирован: 2008-03-18
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров

угу (((



Офлайн

#4 Ноя. 14, 2008 21:55:27

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Передача параметров

темплейты view и модель в студию

Офлайн

#5 Ноя. 14, 2008 22:46:02

Saff
От:
Зарегистрирован: 2008-03-18
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров

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)

Офлайн

#6 Ноя. 15, 2008 12:56:11

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Офлайн

#7 Ноя. 15, 2008 14:03:05

Saff
От:
Зарегистрирован: 2008-03-18
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров

Спасибо, заработало! Как то непонял эту часть когда читал наверное ) Получается что параметры такого вида можно передавать только simple тегу?



Офлайн

#8 Ноя. 15, 2008 14:08:38

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Передача параметров

Saff
Получается что параметры такого вида можно передавать только simple тегу?
Параметры можно передавать любому тегу. Этот шорткат скрывать всю грязную работу и дает сосредоточиться на БЛ.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version