- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 django (1.5.1) 的新手,对 HttpResponseRedirect 有点困惑。如果我理解正确,需要一个静态字符串,当你希望它动态重定向时,你会得到一个reverse()或一个get_absolute_url()我想我得到了 get_absolute_url 的部分,但我坚持重定向到以下网址(第一个是 mysite.urls.py 第二个是我的 strings.view.py
url(r'^users/', include('characters.urls')),
url(r'^(?P<user_id>\d+)/characters/$', views.user_characters, name='user_characters'),
从这个角度看:
if new_char_form.is_valid():
#save form with commit=False
new_char_obj = new_char_form.save(commit=False)
#set user and save
new_char_obj.user = user
new_char_obj.save()
return HttpResponseRedirect('%s/characters/' % user.id)
所以我知道我不能那样使用 HttpResponseRedirect,并且由于我不能在用户模型中包含 get_absolute_url 函数,所以我找到了下一个选项。
将其包含在我的设置中
ABSOLUTE_URL_OVERRIDES = {
'auth.users': lambda o: "/users/%s/" % o.id,
}
但是我不知道如何调用它。有人可以给我帮助吗(在这个问题上停留了一段时间)
谨致问候汉斯
最佳答案
重定向到 user_characters
的最简单方法 View 是使用 redirect
快捷方式。
from django.shortcuts import redirect
# in the view
return redirect('user_characters', user.id)
这相当于使用 HttpResponseRedirect
和 reverse
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
# in the view
return HttpResponseRedirect(reverse('user_characters', args=[user.id]))
如果您想使用 ABSOLUTE_URL_OVERRIDES
覆盖 get_absolute_url
User
的方法模型,您必须确保 url 与名为 user_characters
的 View 的格式匹配。 .
ABSOLUTE_URL_OVERRIDES = {
'auth.users': lambda o: "/users/%s/characters/" % o.id,
}
然后您就可以调用 user.get_absolute_url()
按照您的观点,并执行
return HttpResponseRedirect(user.get_absolute_url())
或者,自从 redirect
快捷方式允许您传递模型实例:
return redirect(user)
关于django HttpResponseRedirect 和 ABSOLUTE_URL_OVERRIDES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20078587/
我是 django (1.5.1) 的新手,对 HttpResponseRedirect 有点困惑。如果我理解正确,需要一个静态字符串,当你希望它动态重定向时,你会得到一个reverse()或一个ge
我是 django (1.5.1) 的新手,对 HttpResponseRedirect 有点不适应。如果我理解正确需要一个静态字符串,并且当您希望它动态重定向时,您会得到一个 reverse() 或
我是一名优秀的程序员,十分优秀!