我正在尝试构建一种表单,该表单将允许用户一次创建一个或多个数据库表行。现在,从我的视图呈现的是整个数据库表。
我知道返回整个数据库表数据是modelform的基本行为,但是根据Django文档,有一种方法可以覆盖默认行为(https://docs.djangoproject.com/en/3.1/topics/forms/modelforms/)。
那是我试图做的,但是它似乎不起作用,整个数据库表一直在显示。
这是我的看法:
def New_Sales(request):
context = {}
form = modelformset_factory(historical_recent_data, fields=('Id', 'Date','Quantity', 'NetAmount'))
if request.method == 'POST':
formset = form(queryset= historical_recent_data.objects.none())
if formset.is_valid():
formset.save()
for check_form in formset:
quantity = check_form.cleaned_data.get('Quantity')
id = check_form.cleaned_data.get('Id')
update = replenishment.objects.filter(Id = id).update(StockOnHand = F(StockOnHand) - quantity)
update2 = Item2.objects.filter(reference = id).update(stock_reel = F(stock_reel) - quantity)
return redirect('/dash2.html')
else:
form = modelformset_factory(historical_recent_data, fields=('Id', 'Date','Quantity', 'NetAmount'))
context['formset'] = form
return render(request, 'new_sale.html', context)
和我的模型:
class historical_recent_data(models.Model):
id = models.AutoField(primary_key=True, default= 0)
Id = models.CharField(max_length=100, verbose_name= 'references')
Date = models.DateField()
Quantity = models.FloatField(default=0)
NetAmount = models.FloatField(default=0)
def __str__(self):
return self.reference
对此将提供任何帮助!