[英]django 1.3 UserProfile matching query does not exist
我對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)
當我打開一個django-shell並首先導入一個用戶時:
u = User.objects.get(id = 1)
然后 :
zm = UserProfile.objects.get(user = u)
我收到一個錯誤:
DoesNotExist:UserProfile匹配查詢不存在。
這個想法很簡單,首先我創建一個用戶,它有效,然后我想向用戶添加一些信息,它不起作用:/
您確定該用戶的UserProfile對象是否存在? Django不會自動為您創建它。
你可能想要的是這個:
u = User.objects.get(id=1)
zm, created = UserProfile.objects.get_or_create(user = u)
如果您確定該配置文件存在(並且您已正確設置AUTH_PROFILE_MODULE),則User模型已經有一個幫助方法來處理:
u = User.objects.get(id=1)
zm = u.get_profile()
正如文檔中所討論的 ,Django不會自動為您創建配置文件對象。 這是你的責任。 一種常見的方法是將保存后信號處理程序附加到用戶模型,然后在創建新用戶時創建配置文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.