据我所知,每当我们制作表单时,它都会从表中提取表单并保存到同一个表中。 例如:
class ExampleForm(forms.Form):
class Meta:
model=Example
这里ExampleForm
是由Example
模型形成的,一旦提交,它就被保存回Example
模型。
我想要的是,我想从一个表中开发一个窗体并将它保存到另一个表中?
这可能吗?
我为什么要这个?
因为,我正在创建一个表单,它只包含复选框,并且从表中检索这些复选框的标签,但是我想将用户输入保存到另一个表中
型号.py
class Offer(models.Model):
package = models.ForeignKey(Package)
discount = models.CharField(max_length=120,null=True,blank=True)
transportation = models.CharField(max_length=120,null=True,blank=True)
nextTrip = models.CharField(max_length=120,null=True,blank=True)
rewardPoints = models.IntegerField(max_length=3,null=True,blank=True)
refferals = models.CharField(max_length=3, choices=REFERRAL_CHOICES)
def __str__(self):
return self.package.packageTitle
Offer
模型用于创建表单,但是一旦提交了数据,就应该将其保存在OfferRequest
模型中
class OfferRequest(models.Model):
offerReq = models.ForeignKey(Offer,null=True)
userReq = models.ForeignKey(User)
discountReq = models.BooleanField(default=False)
transportationReq = models.BooleanField(default=False)
nextTripReq = models.BooleanField(default=False)
rewardPointsReq = models.BooleanField(default=False)
refferalsReq = models.BooleanField(default=False)
def __str__(self):
return self.discountReq
表单.py
class OfferRequestForm(forms.ModelForm):
discountReq = forms.BooleanField(required=False,label="Discount")
transportationReq = forms.BooleanField(required=False,label="Transportation")
nextTripReq = forms.BooleanField(required=False,label="Next Trip")
rewardPointsReq = forms.BooleanField(required=False,label="Reward Points")
refferalsReq = forms.BooleanField(required=False,label="Refferals")
class Meta:
model = OfferRequest
fields = ("discountReq","transportationReq","nextTripReq","rewardPointsReq","refferalsReq")
由于我是从OfferRequest
生成表单,因此呈现如下所示:
() discount
() transportation
() nextTrip
() refferals
() rewardPoints
但我想要的是:
() discount : 3%
() transportation :FREE
() nextTrip :20%
() refferals : Yes
() rewardPoints : 200
如果表单是从Offer
模型派生的,则可以呈现上述表单输出,因为不同的提供是在Offer
模型中定义的
现在当这个表单(从Offer
派生)提交时,我希望它保存在OfferRequest
尽我最大的努力解释,如果有什么不清楚的,一定要问
如果要将
Offer
的值添加到OfferRequestForm
的字段标签,则应重写__init__()
方法:所以现在必须将
offer
参数传递给OfferRequestForm
的构造函数:相关问题 更多 >
编程相关推荐