我正在关注Beginning Django E-Commerce,但我发现关于用户配置文件的部分有点令人困惑。基本上,我有一个像这样的抽象类:
class BaseOrderInfo(models.Model):
class Meta:
abstract = True
# a bunch of fields follow
shipping_name = models.CharField()
# etc
在此之后,UserProfile 类继承 BaseOrderInfo:
class UserProfile(BaseOrderInfo):
user = models.ForeignKey(User, unique = True)
# Possibly other methods or fields here
最后,有一种检索方法,顾名思义,它检索用户配置文件(如果此用户配置文件不存在,它会为该用户对象创建一个):
def retrieve(request):
try:
profile = request.user.get_profile()
except UserProfile.DoesNotExist:
profile = UserProfile(user=request.user)
profile.save()
return profile
好吧,我的问题如下:考虑到 UserProfile 从 BaseOrderInfo 类继承了相当多的其他字段这一事实,如何仅通过添加一个 User 实例将这个 UserProfile 实例保存在检索方法中?据我所知,Model 和 ModelForm 默认创建必填字段。
谢谢