我一直在試圖覆蓋django.contrib.auth.models用戶模型的默認__unicode__()
方法,但我無法讓它工作。覆蓋默認的用戶模型方法
我想它是這樣的:
from django.db import models
from django.contrib.auth.models import User
class User(models.Model):
def __unicode__(self):
return "pie"
和
from django.db import models
from django.contrib.auth.models import User
class User(User):
def __unicode__(self):
return "pie"
,但它不工作,我知道這是錯這樣的,但我不知道如何正確地做到這一點。
我想要做的就是在管理面板中說「餅」而不是用戶名。
編輯:
設法做到這一點是這樣的:
class MyUser(User):
class Meta:
proxy = True
def __unicode__(self):
if self.get_full_name() == '':
return "pie"
else:
return self.get_full_name()
做ForeignKey的引用時,而不是用戶我用了MYUSER類。
很高興爲你工作。我並不想在MonkeyPatching上表現出色,但是如果你打算走上這條路,你就需要做好準備應對各種有趣的問題。特別是你必須做好準備,以便對底層Django核心代碼進行任何更新。 – 2009-11-30 01:31:44