【问题标题】:Django URL View parameter helpDjango URL 查看参数帮助
【发布时间】:2011-04-17 05:24:58
【问题描述】:

我在尝试将字符串从 URL 传递到视图时遇到了一些麻烦。我的页面有用户页面,如果您访问 site.com/username,它会显示该用户页面。但是当我尝试这样做时,它会说:[invalid literal for int() with base 10: 'username'].

这是我的代码:

urls.py:

(r'^user/(?P<userName>[^/]+)/$', 'mischief_blog.mischief_app.views.user_view'),

views.py:

def user_view(request, userName):
    postList = userPost.objects.filter(author=userName)
    return render_to_response('user.html', {"user": user_name, "postList": postList}, context_instance=RequestContext(request))

【问题讨论】:

    标签: django url


    【解决方案1】:

    从网址获取名称:

    (r'^user/(?P<userName>\w+)/$', 'mischief_blog.mischief_app.views.user_view'),
    

    从姓名获取用户,然后从用户获取帖子:(get_object_or_404) 和 (User)

    from django.shortcuts import get_object_or_404
    from django.contrib.auth.models import User
    
    def user_view(request, userName=None):
        user = get_object_or_404(User, username=userName)
        postList = userPost.objects.filter(author=user)
        return render_to_response('user.html', {"user": user, "postList": postList}, context_instance=RequestContext(request))
    

    【讨论】:

    • 这对我不起作用,因为我没有“用户”模型。我只是在使用内置的 django 用户系统的东西。
    • 如果您使用默认的身份验证系统,您可以只导入用户模型。
    • 哦,我明白了,我没有看到您的导入声明 :) 抱歉!
    • 我还有一个问题。当我转到某人的个人资料时,网址是 site.com/user/username。但是,如果我单击任何其他链接,例如主页,它会尝试转到 site.com/user/home。我该如何解决这个问题,以便它转到 site.com/home?
    • (r^'/$', 'home', name='home') 和模板 {% url home %},抱歉在我的手机上。但是,如果它不起作用,您可以发布另一个问题。
    猜你喜欢
    • 2011-03-26
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多