Django:无法在模板中呈现空的模型表单

时间:2020-10-08 09:56:17

标签: python django

我正在尝试构建一种表单,该表单将允许用户一次创建一个或多个数据库表行。现在,从我的视图呈现的是整个数据库表。

我知道返回整个数据库表数据是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

对此将提供任何帮助!

0 个答案:

没有答案