我有一个Django模板,它列出了一个用户所属的所有聊天组。单击所显示组的名称将用户带入所述组。这是一个简单的HTML GET请求:<a href="{% url 'private_group' unique %}">Group name</a>
,其中unique
是与组相关的uuid。你知道吗
当前,单击组名会将我发送到无限重定向(输出在最后给出)。怎么回事?请帮我排除故障,具体如下:
网址.py是:
urlpatterns = patterns('',
url(r'^group/(?P<slug>[\w.@+-]+)/$', auth(private_group), name='private_group'),
url(r'^group/private/$', auth(PrivateGroupView.as_view()), name='private_group_reply'),
)
private_group
是这样一个简单的视图方法:
def private_group(request, slug=None, *args, **kwargs):
request.session['unique_id'] = slug #setting session variable
return redirect("private_group_reply")
另一方面,private_group_reply
是一个基于类的视图。一些视图代码如下所示(因为我假设它们是不相关的,所以删去大量的行):
class PrivateGroupView(CreateView):
model = Reply
form_class = PrivateGroupReplyForm
template_name = "private_group_reply.html"
def get_context_data(self, **kwargs):
context = super(PrivateGroupView, self).get_context_data(**kwargs)
if self.request.user.is_authenticated():
unique = self.request.session['unique_id'] #reading session variable
context["unique"] = unique
return context
如果这还不够,请向我询问更多信息。你知道吗
无限重定向:
[29/Mar/2016 19:37:56] "GET /groups/ HTTP/1.1" 200 10077
[29/Mar/2016 19:37:58] "GET /group/12bcd803-2e1a-47b4-9b91-dff279a82a73/ HTTP/1.1" 302 0
[29/Mar/2016 19:37:58] "GET /group/private/ HTTP/1.1" 302 0
[29/Mar/2016 19:37:58] "GET /group/private/ HTTP/1.1" 302 0
[29/Mar/2016 19:37:58] "GET /group/private/ HTTP/1.1" 302 0
[29/Mar/2016 19:37:58] "GET /group/private/ HTTP/1.1" 302 0
[29/Mar/2016 19:37:58] "GET /group/private/ HTTP/1.1" 302 0
[29/Mar/2016 19:37:58] "GET /group/private/ HTTP/1.1" 302 0
(?P<slug>[\w.@+-]+)
匹配字符串“private”。这意味着您对/group/private的重定向总是被private\u group视图捕获,该视图重定向回自身。你知道吗交换这些url的顺序,使私有的优先。你知道吗
相关问题 更多 >
编程相关推荐