在 Django 视图中使用 URL?可能的?
Posted
技术标签:
【中文标题】在 Django 视图中使用 URL?可能的?【英文标题】:Using URL in Django Views? Possible? 【发布时间】:2014-12-16 19:35:27 【问题描述】:我有content
= '请给我你提到的 Python 书,@friend'
然后在我的 views.py 中:
new_content = re.sub(r'(@\w+)', r"<a href='#'>\g<0></a>>", content)
这会返回
new_content = 'Please get me the Python book you talked about, <a href='#'>@friend</a>'
我希望如果用户点击@friend
,它应该重定向到这个url:
url(r'^user/(?P<user_name>\w+)/$', views.profile, name='profile'),
我如何在我的 views.py 中将这个 url(profile
) 包含在 <a href='#'></a>
中,就像我在像 <a href="% url 'mysite:profile' user.username %">@user.username</a>
这样的 Django 模板中所做的那样?
【问题讨论】:
【参考方案1】:您已经将参数命名为user_name
# urls.py
url(r'^user/(?P<user_name>\w+)/$', views.profile, name='profile'),
# views.py
from django.views.generic.detail import DetailView
class UserDetailView(DetailView):
"""
Takes keyword argument 'user_name'
and looks for it in database:
User.objects.get(username='dude')
"""
model = User
slug_field = 'username'
context_object_name = 'user'
slug_url_kwarg = 'user_name'
template_name = 'user_detail.html'
# Pass your keyword argument
<a href="% url 'mysite:profile' user_name=user.username %">@ user.username </a>
【讨论】:
这应该是我问题的答案吗? "我希望如果用户点击@friend,它应该重定向到这个 url:" 您需要在视图中定义正确的 url 标签、slug_field 和 slug_urlkwarg。是的,是的。【参考方案2】:你使用 reverse()
return HttpResponseRedirect(reverse('url_name'))
您可以查看此answer for reference. 还有documentation for the function.
您可能需要传递参数。你可以这样做:
reverse('profile', kwargs='user_name': 'auth')
你可以试试:
content = 'Please get me the Python book you talked about, @friend'
new_content = re.sub(r'(@\w+)', r"<a href='%s'>\g<0></a>>" % (reverse('profile', kwargs='user_name': 'friend_username')), content)
【讨论】:
你的意思是return HttpResponseRedirect(reverse('profile'))
?
这不起作用。它说NoReverseMatch: Reverse for 'profile' with arguments '()' and keyword arguments '' not found. 0 pattern(s) t ried: []
这可能是因为您正在尝试解析一个带有 1 个参数的 url,而您没有发送它。检查我的编辑。
让我知道这是否可行或需要其他方法来解决
做到了。谢谢你。但它没有在我的页面中呈现 HTML 标记。我已经问了另一个问题。如果你能帮忙。我将不胜感激。以上是关于在 Django 视图中使用 URL?可能的?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用视图名称 (django-rest-framework) 解析超链接关系的 URL