Я создал модель и подключил к ней внешний ключ, но при сохранении их появляется ошибка Невозможно присвоить «1»: «SupplierBidModel.Load_ID» должен быть экземпляром «ShipperBoardModel».
Я довольно новичок в Django, и даже новее в концепции взаимосвязанных моделей Django. Есть идеи, почему это происходит? Я понятия не имею, куда идти отсюда, поскольку в Google тоже не так много вопросов, подобных этому.
Мои модели.py
class ShipperBoardModel(models.Model):
# Manufaturer_ID
LoadID = models.AutoField(primary_key=True)
From = models.CharField(max_length=100,null=True)
To = models.CharField(max_length=100,null=True)
Type = models.CharField(max_length=100,null=True)
Length = models.CharField(max_length=100,null=True)
Weight = models.CharField(max_length=100,null=True)
Numberoftrucks = models.IntegerField(null=True)
MaterialType = models.CharField(null=True,max_length=100)
Loadingtime = models.DateTimeField(null=True)
# Loadkey = models.ForeignKey()
def _str_(self):
return self.Origin
#
class SupplierBidModel(models.Model):
BidID = models.AutoField(primary_key=True)
Load_ID = models.ForeignKey(ShipperBoardModel,on_delete=models.CASCADE,default=3)
Supplier_ID = models.ForeignKey(SupplierBoardModel,on_delete=models.CASCADE,default=3)
Bid_amount = models.IntegerField(null=True)
class Meta:
unique_together = ('Load_ID', 'Supplier_ID')
Views.py
def suppliertablefun (request): # function to display shipperboardmodel
data = ShipperBoardModel.objects.all()
if request.method == 'POST':
forminput = BiddingForm(request.POST)
if forminput.is_valid():
forminput.save()
forminput = BiddingForm(request.POST)
return render(request, 'supplierboard/board.html', locals(), {'forminput': forminput})
PS: я пытаюсь заполнить форму как таковую:
<form action="" method="post">
{# <input type="hidden" value={{item.LoadID}} name="Load_ID" /> #}
<input type="hidden" value={{item.LoadID}} name="Load_ID" />
{{ forminput.Bid_amount }}
<input type="submit" class="btn btn-primary" value="Submit"/>
</form>
Я пытаюсь передать текущий LoadID в LoadID, используя значение = {{item.LoadID}}, которое выполняется, потому что в шаблоне есть цикл for:
{% for item in data %}
Forms.py
class BiddingForm(forms.ModelForm):
Bid_amount = forms.IntegerField()
Load_ID = forms.IntegerField(widget=forms.HiddenInput())
class Meta:
model = SupplierBidModel
exclude = ()
Хорошо, поэтому я просто исправил эту ошибку путем передачи значения = {{LoadID}} вместо value={{item.LoadID}}
, и ошибки нет, но она ничего не сохраняет в базу данных. Что теперь делать?