2017-04-20 85 views
0

我在Django是相对新的。我想用普通的观点是这样的:通用视图请求处理Django

class photogalleryView(generic.ListView): 
    template_name = 'xxx/photogallery.html' 
    model = Foto 
    query = Foto.objects.all() 

def get_queryset(self): 
    return self.query 

,我definitelly不知道如何在PHP中处理GET或POST请求或类似$ _SESSION一样,可以请您给我一些建议件吗? 非常感谢你们!

例如 - 我要处理GET这个网址:

http://127.0.0.1:8000/photogallery?filter=smth 

回答

0

首先,返回相同的QuerySet对象query = Foto.objects.all()没有太大意义,当您尝试使用过滤器和分页时可能(并且会)让您陷入麻烦。如果你想手动修改QuerySet,请执行以下操作:

def get_queryset(self, *args, **kwargs): 
    qs = super().get_queryset(*args, **kwargs) 
    # modify the qs QuerySet in the way you want 
    return qs 

在Django中,你通常不会使用GET或POST。 Django的为您代劳:) 你想要达到什么样的例子是在这里: https://docs.djangoproject.com/en/1.11/topics/class-based-views/generic-display/#dynamic-filtering

事实上,Django文档是非常好的,全面的,至少在公众的功能。 在示例中请注意url(r'^books/([\w-]+)/$', PublisherBookList.as_view()),,其中([\w-]+) RegEx组捕获您可以稍后在get_queryset方法中使用的一些参数(例如“smith”)(如示例中的self.args[0])。

要了解更多关于URL模式,阅读这一块的文档: https://docs.djangoproject.com/en/1.10/topics/http/urls/#named-groups

0

看一看的documentation基于类的意见,如果这就是你要使用的。

您可以将getpostmethods添加到您的班级,并且他们会针对每个相应的请求触发。

这些方法采用request参数,该参数可用于访问来自客户端,会话和登录用户的数据。查看文档以获取详细信息。

+0

我已经试过了,但这些方法应该返回什么?当我尝试 '返回呈现(请求,photogalleryView.as_view(),查询)' 它给了我一个空白页 –