PPT中信息组织如何实现-英雄云拓展知识分享
354
2024-01-22
我已扩大了一个Modelform,但是相干模型没法正确保存到数据库。下面我只打电话 SupplyAddress()
而不是经过创建和保存它的实例 SupplyAddress.objects.create()
但是,如果我尝试这样做,那末还没有创建相干地址(和用户)来保存。解救用户的最好方法是甚么? Address
和 SupplyAddress
?
模型
class Address(models.Model):
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
免责声明:
本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。
发表评论
暂时没有评论,来抢沙发吧~