如何解决Django不保存通过POST传递的所有数据
我正在尝试在模型中保存request.POST,但不幸的是-我没有保存所有数据。对于“载体”和“点”字段-当我渲染模板时,在命令提示符下的QueryDict中显示完全无提示。
命令提示符中的代码(打印POST时)
<QueryDict: {'csrfmiddlewaretoken': ['38kuFlpIUMbmwXJ77qKaz2wWPOuqnM1IaYpKZdmaFVdEmVcuuu7hzf0wr0fEEO8o'],'currency': ['USD'],'pickup': ['1'],'origin_cust': ['1'],'origin_hand': ['11'],'airfreight': ['234'],'dest_cust': ['234'],'dest_hand': ['234'],'delivery': ['32'],'screening': ['342'],'dgfee': ['342'],'Submit': ['Submit'],'carrier': [1],'spot': [1]}
views.py
def offer_spot(request):
my_p = Stakeholder.objects.get(user=request.user)
print(my_p)
form = OfferForm()
if request.method == 'POST':
request.POST._mutable = True
request.POST['carrier'] = my_p.pk
request.POST['spot'] = 1
print("print",request.POST)
form = OfferForm(request.POST)
if form.is_valid():
form.save()
return redirect('/offers')
else:
print(form.errors)
context = {'form': form}
return render(request,'spotrequesting/offer_spot.html',context)
models.py
class Offer(models.Model):
currency = models.CharField(
validators=[RegexValidator(regex='[A-Z]{3}',message='Currency is three letters')],max_length=3,null=False)
pickup = models.FloatField(default=0)
origin_cust = models.FloatField(default=0)
origin_hand = models.FloatField(default=0)
airfreight = models.FloatField(default=0)
dest_cust = models.FloatField(default=0)
dest_hand = models.FloatField(default=0)
delivery = models.FloatField(default=0)
screening = models.FloatField(default=0)
dgfee = models.FloatField(default=0)
carrier = models.ForeignKey(Stakeholder,null = True,on_delete=models.CASCADE)
spot = models.ForeignKey(Spot,on_delete=models.CASCADE)
奇怪的是-当我在两个外键的Offer模型中都键入“ default = 1”时-应用程序正在保存Stakeholder和Spot模型中pk = 1之下的实际值。因此,我认为offer_spot视图中可能有问题。
有没有一种方法可以保存视图中存在的“载体”和“现货”值?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。