[英]Django REST Framework - Issues with extending the user model using signals
[英]Extending User Model in Django Issues
我當前正在運行Django 1.6,並嘗試使用此教程擴展用戶模型: https : //docs.djangoproject.com/zh-CN/1.6/ref/models/fields/#django.db.models.OneToOneField可以讓它工作的是,如果我創建了AdditionalUser對象並向后退到User模型。
我使用以下代碼:
from django.db import models
from django.contrib.auth.models import User
class AdditionalUser(models.Model):
user = models.OneToOneField(User)
hobby = models.CharField(max_length=50)
weight = models.FloatField()
但是當我嘗試執行以下操作時,它給我帶來了False:
user = User.objects.get(pk=1)
hasattr(user, 'hobby')
False
創建此新模型后,我已經運行過syncdb。 我做錯了什么嗎?
User
對象不具有您在AdditionalUser
指定的屬性。 但是,它確實具有additionaluser
屬性:
user = User.objects.get(pk=1)
# create the AdditionalUser object
additional = AdditionalUser.objects.create(user=user)
hasattr(user.additionaluser, 'hobby')
True
在OneToOneField文檔說這個 :
一對一的關系。 從概念上講,這類似於具有unique = True的ForeignKey,但是關系的“反向”側將直接返回單個對象。 (...)如果您未為OneToOneField指定related_name參數,則Django將使用當前模型的小寫名稱作為默認值。
如果User對象中不存在'hobby'屬性,則您將始終為False。
嘗試這個:
user = AdditionalUser.objects.filter(user__id=1)[0]
hasattr(user, 'hobby')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.