我已經遷移到Django自定義用戶模型(CustomUser),其中幾個其他模型具有外鍵和M2M關係。 CustomUser也被Zinnia的作者模型分類(作者) - Zinnia是一款優秀的第三方博客應用程序。Django自定義用戶模型子類(由百日草)
我的問題是,當我通過關係如OtherModel.customuser訪問CustomUser時,它返回CustomUser的一個實例,但在我的視圖中訪問request.User時,它是Author的一個實例。由於作者和CustomUser的屬性是相同的,這通常不會有太大的區別,但如果我想在我的視圖中測試用戶對象的等價性,我必須用戶request.user.id而不是request.user,我本能地不'不喜歡我正在處理的模型的模糊性。
可能我更好地克服它並讓它們保持原樣,因爲在我的視圖中發生了一些小的代碼更改後,所有內容都可以正常工作。儘管如此,在一個完美的世界裏,我會一致地提到相同的用戶模型,但我們不確定如何取得最佳進展。有任何想法嗎?
settings.py
AUTH_USER_MODEL = 'profiles.CustomUser'
models.py(在配置文件中的應用程序)
class CustomUser(AbstractUser):
visits = models.PositiveIntegerField(
_('visits'),
default=0,
blank=True
)
def __unicode__(self):
return self.username
class OtherModel(models.Model):
author = models.ForeignKey(CustomUser)
我知道在documentation的建議是,以與settings.AUTH_USER_MODEL的關係,而不是直接與定製用戶模型。我打算改變這一點,但要明白我在做什麼再次啓動到遷移的痛苦之前
author.py(在百日草APP)
from django.contrib.auth import get_user_model
@python_2_unicode_compatible
class Author(get_user_model()):
"""
Proxy model around :class:`django.contrib.auth.models.get_user_model`.
"""
objects = get_user_model()._default_manager
published = EntryRelatedPublishedManager()
在控制檯get_user_model()返回概況.models.CustomUser class
我有同樣的問題。你找到解決方案嗎? – Blaise