0

我必须在 django 项目中进行一些更改,虽然我熟悉 python,但我不使用 django。

这是我的情况:

我有一个带有“活动”字段的表格。我需要做的是让用户根据字段的值(是/否)对表格进行排序。

我查看了views.py,我意识到有一个视图可以根据id对表格进行排序:

users = User.objects.all().order_by('id')

我的问题是:

  1. 如何使视图根据 url 参数对表格进行排序?
  2. 我必须创建另一个视图还是可以通过某种修改使用相同的视图?
4

2 回答 2

2

您可以使用相同的视图。

def myView(request):
   get_param = request.GET.get('my_param', 'id')
   #some more processing
   users = User.objects.order_by(get_param) #note - you dont need the `all()`

   #rest of the code here.
于 2013-05-14T17:05:09.933 回答
0

这取决于您要在模板中呈现的内容。如果两个视图都会呈现相似的 html,那么最好在通用视图中重构它们并根据GET参数进行排序。

我喜欢关注点分离,因此另一种方法可能是在辅助函数中重构视图代码,并在每个视图中使用单独的 url 调用它。

如果视图没有呈现相似的 html 并且除了它们在某个地方对某些内容进行排序之外,在各个方面都彼此不同,那么我认为最好的方法是分别对两个视图进行编码。

这只是一个考虑问题,但回答您的问题,您可以获得GET访问request.GETrequest.POST取决于方法的参数。

希望能帮助到你!

于 2013-05-14T17:10:55.790 回答