【问题标题】:Checkbox selected items not updating database复选框选定的项目不更新数据库
【发布时间】:2020-05-28 18:53:37
【问题描述】:

我试图选择表中的项目列表并将它们分配给一个新表。我可以选择并显示查询集,但它不会更新到数据库中。也许代码中有一些错误。表单已保存,但对象列表未保存。回溯已附加。查询集未保存到数据库中。这与外键值有关吗?欣赏一些建议或替代方案

Models.py

class BidItem(models.Model):
bid = models.ForeignKey(Bid, related_name='bids', on_delete=models.CASCADE)
order= models.ForeignKey(Order, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
price = models.DecimalField(max_digits=10, decimal_places=2)
quantity = models.ForeignKey(OrderItem, on_delete=models.CASCADE)

def __str__(self):
    return str(self.id)

def bid_price(self):
    return self.price * self.quantity

Views.py

def bid_list(request):
    """Place bids"""
    selected = request.POST.getlist('vendorbid')
    selected_orders = OrderItem.objects.filter(pk__in=selected)

    if request.method == 'POST':
            form = BidListForm(request.POST)
            if form.is_valid():
                bid = form.save()
                for item in selected_orders:
                    BidItem.objects.create(bid=bid,
                                            order = item['order.id'],
                                            product=item['product'],
                                            price=item['price'],
                                            quantity=item['quantity'])


                return render(request,'bids/bid_placed.html')
            else:
                return render(request, 'bids/bid_list.html', {'selected_orders': selected_orders, 'form': form})
        else:
            form = BidListForm()
            orders = OrderItem.objects.all()

            return render(request, 'bids/bid_list.html', {'form': form, 'orders': orders})

错误和回溯

我得到的错误是: /bids/bid_list/ 处的类型错误 “OrderItem”对象不可下标

追溯是:

【问题讨论】:

    标签: checkbox django-forms django-queryset


    【解决方案1】:

    我终于解决了,因为有外键我不得不相应地更改变量:

    这是views.py中已解决的部分供任何人参考:

    Views.py 编辑部分

    BidItem.objects.create(bid=bid,
                                        order=item.order,
                                        product=item.product,
                                        price=item.price,
                                        quantity_id=item.quantity)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 2016-05-16
      • 1970-01-01
      • 2014-11-27
      相关资源
      最近更新 更多