我有一个日期过滤器,我正在通过几个django视图:
views.py
def event_list(request):
date_query = request.GET.get("date", str(default_event_date()))
d = datetime.strptime(date_query, "%Y-%m-%d").date()
# do stuff...
return render(request, "events/event_list.html", context)
但我希望通过render()
继承GET参数。
我已找到this answer了解如何使用reverse()
执行此操作,但render()
并未直接使用网址。
我怀疑我需要将其重新添加到通过的request
,但我不确定如何执行此操作。
答案 0 :(得分:1)
我认为你误解了render
。 render
生活中的工作就是从HTML模板和上下文词典中返回HttpResponse
content to the user:
将给定模板与给定的上下文字典组合在一起 并返回带有该渲染文本的HttpResponse对象。
相反,redirect
会将用户重定向到新的网址(即,可以包含GET
个参数)。因此,如果您使用render
,则必须手动保留GET
参数。当然,您可以通过执行以下操作将<{1}}添加到用户的会话中来避免这种情况:
date
这样您就可以将GET参数“转发”到后续路线和视图中。