2011-09-26 51 views
-1

我试图让URL有一个变量(比如userid ='variable'),并且该变量将作为参数传递以检索具有“变量”的特定对象作为其变量在特定应用程序的数据库中的名称。我将如何做到这一点?Django--检索模板中的特定对象

回答

1

阿里是正确的,Django的文档是优秀的。不要被吓倒,他们会让学习变得很容易。

从编写您的第一个Django应用程序第3部分(https://docs.djangoproject.com/en/dev/intro/tutorial03/),该示例将向您展示如何捕获URL中的变量。 在urls.py:

urlpatterns = patterns('', 
    (r'^polls/$', 'polls.views.index'), 
    (r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), 
) 

线(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail')说,当URL被像mysite.com/polls/423,捕获\ d +(423)并将其发送到详细视图作为变量命名poll_id。如果将<poll_id>更改为<my_var>,则名为my_var的变量将传递给视图。在视图中,例如有:

def detail(request, poll_id): 
    return HttpResponse("You're looking at poll %s." % poll_id) 

你在这个函数的身体,你可以查找投票Polls.objects.get(id=poll_id)并得到所有的民意调查对象的属性/方法。

或者,如果你正在寻找添加URL变量(查询字符串),如/调查/细节poll_id = 423,那么你的urls.py项将是:

(r'^polls/details$', 'polls.views.detail'), 

和您的看法:

def detail(request): 
    poll_id = request.GET['poll_id'] 
    return HttpResponse("You're looking at poll %s." % poll_id) 

在肉体,你依然可以得到民意调查对象的细节与Poll.objects.get(id=poll_id),但在这种情况下,你所创建的,而不是允许的Django从URL解析并把它传递给从GET变量的变量poll_id视图。

我建议坚持第一种方法。

0

你真的读过tutorial for Django吗?

为了突出从Write your first view

只有一句话现在让我们增加一些更多的看法。这些观点略有不同, 因为他们需要一个参数(它,记住,从 传递任何通过URL配置正则表达式捕获)