0

我正在用 Django 开发一个站点并拥有两种类型的配置文件。其中之一名为Person。所以我试图访问一个 Person 对象,使用以下代码:

from django.contrib.auth.forms import UserCreationForm
from django.template import RequestContext
from django.shortcuts import render_to_response,get_object_or_404
from django.core import urlresolvers
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from accounts.forms import UserRegistrationForm, UserProfileForm
from pprint import pprint
from django.http import HttpResponse
from  models import User
from models import UserProfile

def profile(request, url,template_name='person/profile.html'):
    user=User(username=url).get_profile().person;
    return HttpResponse(user)

它给出了错误:

DoesNotExist at /p/Haafiz/
UserProfile matching query does not exist.

在另一个地方,我正在尝试使用以下代码:

from django.contrib.auth.forms import UserCreationForm
from django.template import RequestContext
from django.shortcuts import render_to_response,get_object_or_404
from django.core import urlresolvers
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from accounts.forms import UserRegistrationForm, UserProfileForm
from pprint import pprint
from django.http import HttpResponse
from accounts.forms import UserProfile

@login_required
def dashboard(request,template_name="account/dashboard.html"):
    return HttpResponse(request.user.get_profile().person)

在这种情况下,它工作正常。在我试图从从数据库获取的对象访问配置文件的第一个地方可能会出现什么问题?这两种情况对我来说似乎都是一样的,但在上述情况中存在问题。

4

1 回答 1

0

User(name=url)只生成一个用户实例,而不是查询特定用户的数据库。

改变

user=User(username=url).get_profile().person

user = User.objects.get(username=url).get_profile().person
于 2012-06-24T17:56:42.153 回答