Django "нет такой таблицы" при добавлении записей базы данных через терминал

Я пытаюсь создать реляционную базу данных (один ко многим) в моем файле models.py. Но при попытке добавить записи в мою базу данных я получаю ошибку, говорящую: django.db.utils.OperationalError: no such table: app1_prices. Я запустил makemigrations и migrate в терминале, так что проблема не в этом

models.py

from django.db import models

class Figure(models.Model):
    id = models.CharField(max_length=12, primary_key=True)
    pieces = models.IntegerField()

    def __str__(self):
        return self.id

class Prices(models.Model):
    id = models.ForeignKey(Figure, on_delete=models.CASCADE, primary_key=True)
    price_new = models.DecimalField(decimal_places=2, max_digits=8)
    price_used = models.DecimalField(decimal_places=2, max_digits=8)
    date = models.DateField(blank=True, null=True)

    def __str__(self):
        return self.id, self.date

0001_initial.py

from django.db import migrations, models
import django.db.models.deletion

class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
    migrations.CreateModel(
        name='Figure',
        fields=[
            ('id', models.CharField(max_length=12, primary_key=True, serialize=False)),
            ('pieces', models.IntegerField()),
        ],
    ),
    migrations.CreateModel(
        name='Prices',
        fields=[
            ('id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='app1.figure')),
            ('price_new', models.DecimalField(decimal_places=2, max_digits=8)),
            ('price_used', models.DecimalField(decimal_places=2, max_digits=8)),
            ('date', models.DateField(blank=True, null=True)),
        ],
    ),
]

Код, который я пробовал в терминале:

>>> from app1.models import Figure, Prices
>>> f1 = Figure("sw0001a", 5)
>>> f1.save()
>>> p1 = Prices(f1.id, 2.00, 1.20, "2022-05-03")
>>> p1.save()
django.db.utils.OperationalError: no such table: app1_prices

Вы можете попробовать выполнить эту команду :

manage.py migrate --run-syncdb

Согласно django doc. Это позволяет создавать таблицы для приложений без миграций.

Вернуться на верх