django get_配置文件错误

django get_配置文件错误,django,django-models,django-templates,django-views,Django,Django Models,Django Templates,Django Views,我想在settings.py中已经包含的视图中获取我的用户配置文件id AUTH_PROFILE_MODULE = 'users.UserProfile' 视图代码: def savecontent(request): try: logging.debug("=========================== in save content") logging.debug(dir(request.user)) my_id = request.user.get_profile

我想在settings.py中已经包含的视图中获取我的用户配置文件id

 AUTH_PROFILE_MODULE = 'users.UserProfile'
视图代码:

def savecontent(request):
 try:
  logging.debug("=========================== in save content")
  logging.debug(dir(request.user))
  my_id = request.user.get_profile().id
  logging.debug(my_id)
错误是:

 2012-07-17 13:00:00,564 ERROR Error while saing content
 Traceback (most recent call last):
 File "/opt/labs/labs_site/content/views.py", line 21, in savecontent
 my_id = request.user.get_profile().id
 File "/opt/labs/django/django/utils/functional.py", line 185, in inner
 return func(self._wrapped, *args)
 AttributeError: 'AnonymousUser' object has no attribute 'get_profile'
您必须有经过身份验证的用户才能检索配置文件,这是您的问题

@login_required
def foo(request):
    profile_id = request.user.get_profile().id

否-他的意思是HTTP请求必须由已通过身份验证的用户发出。您的错误输出显示该用户是“匿名用户”,这是Django在用户未经身份验证时使用的。if request.user.is_authenticated():本身不是passingsorry-这没有意义。你的意思是
request.user.is_authenticated()==False
?如果是这样,那么这就是你的问题-你需要登录。tbh你不应该尝试检索这样的配置文件,无论如何,我已经编辑了我的答案以获得更好的路由。实际上,所需的登录将保证你已经验证了用户身份,我简化了你的视图,因此不需要检查它是否存在。
@login_required
def foo(request):
    profile_id = request.user.get_profile().id