ad

扩大的Modelform不保存相干表-英雄云拓展知识分享

匿名投稿 220 2024-01-22

我已扩大了一个Modelform,但是相干模型没法正确保存到数据库。下面我只打电话 SupplyAddress() 而不是经过创建和保存它的实例 SupplyAddress.objects.create() 但是,如果我尝试这样做,那末还没有创建相干地址(和用户)来保存。解救用户的最好方法是甚么? AddressSupplyAddress?

模型

class Address(models.Model):

扩大的Modelform不保存相干表-英雄云拓展知识分享

user = models.ForeignKey(settings.AUTH_USER_MODEL)

house_name_number = models.CharField(max_length=255, verbose_name="house name or number")

street_name = models.CharField(max_length=255)

town_city = models.CharField(max_length=255)

county = models.CharField(max_length=255)

postcode = models.CharField(max_length=8)

time_stamp = models.DateField(auto_now=True)

class SupplyAddress(models.Model):

address = models.OneToOneField(Address)

region = models.ForeignKey(Region, null=True)

occupied = models.BooleanField()

forms.py

class SupplyAddressForm(forms.ModelForm):

occupied = forms.BooleanField()

def save(self, *args, **kwargs):

super().save(*args, **kwargs)

data = self.cleaned_data

supply_address = models.SupplyAddress(

occupied=data['occupied'],

)

self.instance.supplyaddress = supply_address

return self.instance

class Meta:

model = Address

fields = ['house_name_number',

'street_name',

'town_city',

'county',

'same_address',

'move_in_date',

'postcode',

]

Views.py

.....

address = form.save(commit=FALSE)

address.user = user

address.save()

看答案

编辑保存方法,

class SupplyAddressForm(forms.ModelForm):

occupied = forms.BooleanField()

class Meta:

model = Address

fields = ['house_name_number',

'street_name',

'town_city',

'county',

'same_address',

'move_in_date',

'postcode',

]

def save(self, *args, **kwargs):

data = self.cleaned_data

supply_address = models.SupplyAddress.objects.create(occupied=data['occupied'])

instance = super(SuppyAddressForm, self).save(*args, **kwargs)

instance.supplyaddress = supply_address

instance.save()

return instance


🚀🌟 点击注册 免费试用超级应用平台-英雄云企业级hpapaas 🌟🚀 😃👉🌐

免责声明:

本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或含不准确之处,请即刻联系我们进行相应处理。

标签:构造 现代物流 企业发展
上一篇:为何只有一个元素被给出一个值时,为何python字典的所有元素都会以相同的方式更改?-英雄云拓展知识分享
下一篇:在循环中验证raw_input-英雄云拓展知识分享
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×