nyk*_*kon 5 python authentication django
我对User模型有一个小问题,模型看起来像这样:
#! -*- coding: utf-8 -*-
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
url = models.URLField(max_length = 70, blank = True, verbose_name = 'WWW')
home_address = models.TextField(blank = True, verbose_name = 'Home Adress')
user = models.ForeignKey(User, blank = True, unique = True)
def __unicode__(self):
return '%s' %(self.user)
Run Code Online (Sandbox Code Playgroud)
当我打开一个django-shell并首先导入一个用户时:
u = User.objects.get(id = 1)
Run Code Online (Sandbox Code Playgroud)
然后 :
zm = UserProfile.objects.get(user = u)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
DoesNotExist:UserProfile匹配查询不存在.
这个想法很简单,首先我创建一个用户,它的工作原理,然后我想向用户添加一些信息,它不起作用:/
您确定该用户的UserProfile对象是否存在?Django不会自动为您创建它.
你可能想要的是这个:
u = User.objects.get(id=1)
zm, created = UserProfile.objects.get_or_create(user = u)
Run Code Online (Sandbox Code Playgroud)
如果您确定该配置文件存在(并且您已正确设置AUTH_PROFILE_MODULE),则User模型已经有一个帮助方法来处理:
u = User.objects.get(id=1)
zm = u.get_profile()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7582 次 |
| 最近记录: |