【问题标题】:DJANGO calling another user's profileDJANGO 呼叫另一个用户的个人资料
【发布时间】:2012-04-18 19:56:16
【问题描述】:

我熟悉调用当前登录的用户,使用:requestcontext、user 和 get_profile。
如果我正在创建另一个页面,而不是当前登录用户的页面怎么办?

我的网址是:

r'^/profile/(\w+)/$' 

视图如下:

from django.contrib.auth.models import User

def profile(request, username):
    person = User.objects.filter(username=username)
    return render_to_response('profile.html', {"person":person}, 
         context_instance=RequestContext(request))

在我的模板中,我可以输入 {{user.username}} 或 {{user.get_profile.name}} 并获取值,但不能输入 {{person.username}} 或 {{person.get_profile.name}} .有什么方法可以检索我需要的信息?提前谢谢你。

【问题讨论】:

    标签: django profile


    【解决方案1】:

    .filter 返回一个列表,即使它只有一个匹配项。由于您正在寻找一个用户名,请使用.get(username=username),您的人最终将只得到一个对象。

    【讨论】:

      【解决方案2】:

      您应该查看 Django 文档中的Retrieving objects。返回查询集的方法:

      方法.all()

      all() 方法返回一个 QuerySet 中的所有对象 数据库。

      >> users = User.objects.all()
      >> type(users) # This is a QuerySet, not a User object
      <class 'django.db.models.query.QuerySet'>
      

      方法 .filter() 和 exclude()

      过滤器(**kwargs)
      返回一个包含匹配对象的新 QuerySet 给定的查找参数。

      排除(**kwargs)
      返回一个新的 QuerySet,其中包含与给定查找参数不匹配的对象。

      >> users = User.objects.filter(username=username)
      >> type(users) # This is a QuerySet, not a User object
      <class 'django.db.models.query.QuerySet'>
      
      >> users = User.objects.exclude(username=username)
      >> type(users) # This is a QuerySet, not a User object
      <class 'django.db.models.query.QuerySet'>
      

      现在,如果你看看Methods that do not return QuerySets

      这是你需要使用的:

      方法.get()

      get(**kwargs)
      返回与给定查找参数匹配的对象,该参数应采用字段查找中描述的格式。

      >> users = User.objects.exclude(username=username)
      >> type(users) # This is a User object
      <class 'YourProject.YourApp.models.User'>
      

      【讨论】:

        猜你喜欢
        • 2020-11-19
        • 1970-01-01
        • 2023-03-22
        • 2021-09-04
        • 2020-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-25
        相关资源
        最近更新 更多