我想在用户模型中添加字段,因此我通过制作新的应用extended_profile
来扩展它。
我的Models.py:
from oscar.apps.customer.abstract_models import AbstractUser
class Profile(AbstractUser):
nickname = models.CharField(_("Nick Name"), max_length=40, null=True, blank=True)
flavor = models.CharField(max_length=2, verbose_name="Flavor")
avatar = models.CharField(max_length=3, verbose_name="Avatar")
send_newsletter = models.BooleanField(default=True, verbose_name="Send Newsletter")
Settings.py我提到了新模型
AUTH_USER_MODEL = 'extended_profile.Profile'
现在当我访问合作伙伴模型时
>>> from forked_apps.partner.models import *
>>> p = Partner.objects.get(pk=1)
>>> p.users.all()
我收到以下错误。
ProgrammingError at /admin/partner/partner/add/
column partner_partner_users.profile_id does not exist
LINE 1: SELECT "partner_partner_users"."profile_id" FROM "partner_pa...
^
Request Method: POST
Request URL: http://localhost:8000/admin/partner/partner/add/
Django Version: 1.8.3
Exception Type: ProgrammingError
Exception Value:
column partner_partner_users.profile_id does not exist
LINE 1: SELECT "partner_partner_users"."profile_id" FROM "partner_pa...
^
合作伙伴模型有一个用户字段,与配置文件模型有多对多的关系。
class Partner(models.Model):
....
users = models.ManyToManyField(
AUTH_USER_MODEL, related_name="partners",
blank=True, verbose_name=_("Users"))
根据错误profile_id
字段不存在。配置文件模型默认会有Id
字段?为什么我会收到此错误?