Флажок выбранные элементы не обновляют базу данных - PullRequest
0 голосов
/ 28 мая 2020

Я пытался выбрать список элементов в таблице и назначить их новой таблице. Я могу выбрать и отобразить набор запросов, но он не обновляется в базе данных. Возможно, в коде есть ошибка. Форма сохраняется, но список объектов не сохраняется. Прослеживание прилагается. Набор запросов не сохраняется в базе данных. Связано ли это с ценностями Foreignkey? Оцените некоторые советы или альтернативы

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})

Ошибка и отслеживание

Я получаю следующую ошибку: TypeError в / bids / bid_list / объект 'OrderItem' не подлежит подписке

Отслеживание: enter image description here

1 Ответ

0 голосов
/ 30 мая 2020

Я наконец решил, так как были внешние ключи, мне пришлось соответственно изменить переменные:

Вот разрешенная часть в views.py для любой ссылки:

Views.py отредактированная часть

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