1

如何创建OrderUser包含User所需模型子字段的模型:

  • 电子邮件

我想避免从 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 继承会导致许多不必要的字段,例如 username、is_staff、is_active 等。

4

1 回答 1

1

好的,我的错,我终于找到了自己问题的答案,也许对其他人有帮助。

_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

于 2013-03-23T21:33:20.257 回答