2013-04-17 258 views
0

我正在扩展auth.models.User,但我遇到了麻烦实施__unicode__方法。 Django __unicode__扩展Auth_User模型

from django.db import models 
from django.contrib.auth.models import User 

class Artist(models.Model): 
    user = models.OneToOneField(User) 
    city = models.CharField(max_length=30) 
    bio = models.CharField(max_length=500) 

现在怎么我访问user领域,我想为Django管理返回名称。

回答

2
class Artist(models.Model): 
    # fields 

    def __unicode__(self): 
     return "{first_name} {last_name}".format(
      **dict(
       first_name=self.user.first_name, 
       last_name=self.user.last_name 
      ) 
     ) 

虽然User已经有一个功能Concat的姓名字段,所以这将工作太:

def __unicode__(self): 
    return "{0}".format(self.user.get_full_name()) 

甚至

def __unicode__(self): 
    return self.user.get_full_name()