簡體   English   中英

django 1.3 UserProfile匹配查詢不存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM