2013-03-23 30 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