Найти - Пользователи
Полная версия: Передача параметров в представление
Начало » Django » Передача параметров в представление
1
seniorleo
Здравствуйте!!!

Вот какой вопрос меня интересует - хочу я сделать систему управления страницами сайта на Django

вот файл models.py
from django.db import models

class Pages(models.Model):
name = models.CharField(maxlength=30)
htmlcode = models.TextField()

def __str__(self):
return self.name


class Admin:
pass
далее каждую отдельную страницу я хочу получать по адресу

http://domainname/page/Имя_страницы

Для чего прописываю в файле urls.py следующее
(r'^page/[A-Za-z]+/$', showpage),
далее функция showpage
def showpage(request,pagename):
pages = Pages.objects.filter(name="main")
return render_to_response('base.html', {'pages': pages})
если я оставляю функцию в таком виде то получаю
TypeError at /page/main/
showpage() takes exactly 2 arguments (1 given)
если убираю request то не могу передать параметр pagename в строчку
pages = Pages.objects.filter(name="main")
то бишь если напрямую указывать название страницы в этой строчке то всё работает а вот как сделать чтобы
функция работала для любого pagename - непонятно

варианты
pages = Pages.objects.filter(name="pagename")
pages = Pages.objects.filter(name='pagename')
pages = Pages.objects.filter(name=pagename)
не работают

и кроме того в книжке по Django сказано следующее

каждое представление всегда принимает объект HttpRequest в качестве первого параметра.

как это понимать? и почему тогда не работает вариант с двумя параметрами?
Александр Кошелев
seniorleo
как это понимать? и почему тогда не работает вариант с двумя параметрами?
Вы регулярное выражение неправильно написали. Попробуйте так:
(r'^page/([A-Za-z]+)/$', showpage),

#...
pages = Pages.objects.filter(name=pagename)
smal
Такий варіант пробували ?
(r'^page/(?P<pagename>\w+)/$', showpage)
у Вашому view :
def pageview(request, pagename)
ПС. В документації Django все гарно розписано
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