Не удается получить доступ к профилю 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