我正在使用Django 1.5,尝试从url捕获参数,然后使用该参数查询文章ID并将用户重定向到该文章。
我不能在url.py
中指定新的网址,并执行以下操作吗?但这只是将我要使用的网址附加到当前网址的末尾
url.py
url(r'^external/(?P<external_id>\d+)/$', myView.as_view(), name='external-view')
views.py
class MyView(RedirectView):
def get_redirect_url(self, **kwargs):
external_id = kwargs['external_id']
article_id = Article.objects.get(external_id=external_id).id
domain = Site.objects.get_current().domain
new_url = '{}/article/{}'.format(domain, article_id)
return new_url
答案 0 :(得分:2)
为了使外部重定向正常工作,您必须在域之前添加“ http://”或“ https://”。因此,您可以选择以下两个选项之一:
Site
对象时,请确保domain
属性以“ http://”或“ https://”开头new_url = 'http://{}/article/{}'.format(domain, article_id)
,但是您需要事先知道它是http还是https