创建新用户时如何创建用户配置文件

How to create a user profile when creating a new user

我正在使用 django 1.7.4 作为我的 angular 应用程序的服务器。我需要为用户存储更多数据,所以我添加了一个 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)

我想在 shell 上测试一下它是如何工作的。

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

我试过了:

>>> u = User.objects.create(username="testing123", email="testing123@gmail.com")
>>> 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.

您正在尝试访问相关对象,而当您这样做时它不存在 u.userprofile

尝试使用与创建 User 对象相同的方法:

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