我必须在django项目中进行一些更改,虽然我熟悉python,但我不会使用django。
这是我的情况:
我有一个字段为“active”的表。我需要做的是让用户根据字段的值对表进行排序(是/否)。
我查看了views.py,我意识到有一个视图根据id对表进行排序:
users = User.objects.all().order_by('id')
我的问题是:
答案 0 :(得分: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.
答案 1 :(得分:0)
这取决于您要在模板中呈现的内容。如果两个视图都呈现相似的html,那么最好在通用视图中重构它们,并根据GET
参数进行排序。
我喜欢分离关注点,因此另一种方法可能是重构辅助函数中的视图代码,并在每个视图中使用分隔的URL调用它。
如果视图不呈现类似的html并且在每个方面彼此不同,除了它们在某个地方排序,那么我认为最好的方法是分别对两个视图进行编码。
这只是一个考虑问题,但回答您的问题,您可以GET
参与request.GET
或request.POST
的参数,具体取决于方法。
希望它有所帮助!