繁体   English   中英

通用视图请求处理Django

[英]Generic views request handling Django

我是Django的新手。 我想使用这样的通用视图:

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

def get_queryset(self):
    return self.query

而且我绝对不知道如何处理GET或POST请求或类似PHP中的$ _SESSION之类的东西,请给我一些建议吗? 非常感谢你们 !

例如-我要处理此URL上的GET请求:

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

如果您要使用的话,请查看基于类的视图的文档

您可以在类中添加getpost 方法 ,它们将在每个相应的请求上触发。

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

首先,返回相同的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方法中使用它(例如示例中的self.args[0] ),例如“ smith”。

要了解有关url模式的更多信息,请阅读以下文档: https : //docs.djangoproject.com/en/1.10/topics/http/urls/#named-groups

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM