У меня есть две модели: модель доставки, которая имеет идентификатор носителя внешнего ключа и ссылается на другую модель Carrier. Когда я хочу добавить новую доставку, я получаю вышеупомянутую ошибку. Что я знаю, у меня нет поля carrierID_id, но я не понимаю, почему я получаю эту ошибку.
Вот структура моих моделей:
class Carrier(models.Model):
class Meta:
verbose_name_plural='carriers'
carrierID=models.CharField(max_length=15, unique=True)
carrierName=models.CharField(max_length=50)
carrierTelephoneNumber=models.CharField(max_length=14)
carrierAddress=models.TextField()
def __str__(self):
return '{}{}{}{}'.format(self.carrierID,' ' , self.carrierName,' ', self.carrierTelephoneNumber,' ',self.carrierAddress)
class Shipping(models.Model):
shippingID = models.AutoField(primary_key=True)
carrierID = models.ForeignKey(Carrier, on_delete=models.CASCADE)
shippingDate = models.DateTimeField()
productName=models.CharField(max_length=30)
shippingAddress = models.TextField()
sendTo = models.CharField(max_length=50)
shippingStatus = models.BooleanField(default=False)
promisedDate=models.DateTimeField()
comment = models.TextField()
Структура shippingForm выглядит следующим образом:
class ShippingForm(forms.ModelForm):
carrier = Carrier.objects.only('carrierID')
print(carrier)
carrierID = forms.ModelChoiceField(carrier)
shippingDate = forms.DateTimeField(required=False)
productName = forms.CharField(max_length=30, required=False)
shippingAddress = forms.Textarea()
sendTo = forms.CharField(max_length=50)
shippingStatus = forms.BooleanField(required=False)
promisedDate = forms.DateTimeField(required=False)
comment = forms.Textarea()
class Meta:
model=Shipping
fields=('carrierID','shippingDate', 'productName','shippingAddress', 'sendTo','shippingStatus','promisedDate', 'comment',)
Ниже приведены мои таблицы MySQL:
![CarrierTable](https://i.stack.imgur.com/IBG4P.png)
Вот SQL доставки.
create table pages_shipping(shippingID int auto_increment,
carrierID int(11),
shippingDate date,
prductName varchar(50),
shippingAddress text,
sendTo varchar(50),
shippingStatus boolean,
promisedDate date,
comment text,
primary key(shippingID),
foreign key(carrierID) REFERENCES pages_Carrier(id) ON DELETE CASCADE);
Пожалуйста, помогите