Не удается получить доступ к профилю Django с запросом от db, пока он получает профиль зарегистрированного пользователя

Я занимаюсь разработкой сайта в Джанго и имею два типа профилей. Один из них по имени Персона. Поэтому я пытаюсь получить доступ к объекту 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)

И в этом случае все работает нормально. Что может быть проблемой в первую очередь, когда я пытаюсь получить доступ к профилю от объекта, получающего из БД? Оба эти случая кажутся мне одинаковыми, но в вышеупомянутом случае возникают проблемы.

1 ответ

User(name=url) просто создайте экземпляр User, а не запрашивайте базу данных для определенного пользователя.

+ Изменить

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

в

user = User.objects.get(username=url).get_profile().person
Другие вопросы по тегам