2013-03-23 26 views
1

我如何可以创建所需User模型OrderUser包含模型子字段:如何创建一个包含用户模型领域的子集模型在Django

  • FIRST_NAME
  • 姓氏
  • 电子邮件

我想避免从django.contrib.auth.models手动复制字段的结构AbstractUser

class OrderUser(models.Model): 
    first_name = models.CharField(_('first name'), max_length=30, blank=True) 
    last_name = models.CharField(_('last name'), max_length=30, blank=True) 
    email = models.EmailField(_('email address'), blank=True) 

我不知道是否有任何的方式来写是这样的:

class OrderUser(models.Model): 
    first_name = User.fields.first_name 
    last_name = User.fields.last_name 
    email = User.fields.email 

通常情况下,如果我想两种型号具有相同的字段,我用抽象模型继承。 但是从AbstractUser继承导致许多不必要的字段,如用户名,is_staff,is_active等。

回答

0

好的,我的坏,我终于找到了自己的问题的答案,也许这将有助于其他人。

_meta属性为我工作:

class OrderUser(models.Model): 
    first_name = User._meta.get_field_by_name('first_name')[0] 
    last_name = User._meta.get_field_by_name('last_name')[0] 
    email = User._meta.get_field_by_name('email')[0] 

更多讨论有关_meta