Как получить сообщение об ошибке 1054: «Неизвестный столбец« carrierID_id »в« списке полей »» - PullRequest
0 голосов
/ 12 января 2019

У меня есть две модели: модель доставки, которая имеет идентификатор носителя внешнего ключа и ссылается на другую модель 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: ShippingTable CarrierTable

Вот 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);

Пожалуйста, помогите

1 Ответ

0 голосов
/ 13 января 2019

Я понял, что происходит. Это потому, что когда я запускаю команду py manage.py makemigrations, поле carrierID не добавляется. К сожалению, я не знаю, чтобы заставить Django добавить его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...