2015-02-10 80 views
1

我正在使用django 1.7.4作为我的角度应用程序的服务器。我需要为用户存储更多数据,所以我添加了UserProfile模型。如何在创建新用户时创建用户配置文件

models.py

from django.db import models 
from django.contrib.auth.models import User 

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    company_name = models.CharField(max_length=100) 

我想测试一下,看看如何从外壳的作品。

如何在创建用户时创建用户配置文件?

我想:

>>> u = User.objects.create(username="testing123", email="[email protected]") 
>>> u.userprofile.create(company_name="onetwo") 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/Users/bhaarat/.virtualenvs/djangorest/lib/python2.7/site-packages/django/db/models/fields/related.py", line 428, in __get__ 
    self.related.get_accessor_name() 
RelatedObjectDoesNotExist: User has no userprofile. 

回答

2

您试图访问相关的对象,而它不存在的时候,你会做u.userprofile

尝试用同样的方式,你正在创建的User对象,而不是:

UserProfile.objects.create(user=u, company_name="onetwo") 
+0

我得到错误'NameError:name'UserProfile'未定义'我认为它是因为'UserProfile'没有被导入。我如何导入它?我尝试'从演示导入UserProfile',但仍然得到错误'无法导入名称UserProfile' – birdy 2015-02-10 21:00:49

+0

就像你导入'用户',你需要导入UserProfile,或python不知道你是什么模型引用。 – karthikr 2015-02-10 21:01:41

+0

是的...我似乎无法找到如何导入它。我试过'从导入UserProfile',但这不起作用。 – birdy 2015-02-10 21:02:39

相关问题