Я слежу за Начинаю 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
Наконец, существует метод извлечения, который, как следует из его названия, извлекает профиль пользователя (если этот профиль пользователя не существует, он создает его для этого объекта User):
def retrieve(request):
try:
profile = request.user.get_profile()
except UserProfile.DoesNotExist:
profile = UserProfile(user=request.user)
profile.save()
return profile
Что ж, мой вопрос заключается в следующем: как можно сохранить этот экземпляр UserProfile в методе retrieve, только добавив экземпляр User, учитывая тот факт, что UserProfile унаследовал довольно много других полей от класса BaseOrderInfo? Насколько я знаю, Model и ModelForm создают обязательные поля по умолчанию.
Спасибо