创建新用户时如何创建用户配置文件
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")
我正在使用 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")