Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django相关模型,如果不存在,是否创建?_Django_Django Models_Django 1.7 - Fatal编程技术网

Django相关模型,如果不存在,是否创建?

Django相关模型,如果不存在,是否创建?,django,django-models,django-1.7,Django,Django Models,Django 1.7,我有以下型号: class Merchant(BaseModel): user = OneToOneField(settings.AUTH_USER_MODEL, related_name='merchant', primary_key=True) class MerchantExtended(BaseModel): merchant = OneToOneField(Merchant, related_name='extended', primary_key=True)

我有以下型号:

class Merchant(BaseModel):
    user = OneToOneField(settings.AUTH_USER_MODEL, related_name='merchant', primary_key=True)

class MerchantExtended(BaseModel):
    merchant = OneToOneField(Merchant, related_name='extended', primary_key=True)
    billing_address = TextField()
在保存包含商户和MerchantTextEnded数据的表单时,我希望能够做到:

user = get_user_from_somewhere()
merchant = Merchant(user=user)

# Implicitly does get_or_create() and sets merchant.extended.merchant
merchant.extended.billing_address = '123 Main St'

# Implicitly does merchant.extended.save()
merchant.save()
上述内容是否已经存在,或者我是否需要覆盖某些模型属性/方法来实现这一点?

我认为Django可以在这里使用:

merchant = Merchant.objects.get(user=request.user)
ext_merchant, created = MerchantExtended.objects.update_or_create(
    merchant=merchant, defaults={'billing_address': '123 Main St'}
)