django.db.утилиты.OperationalError: нет такой таблицы: polls_post

#python #django

#python #django

Вопрос:

Я смотрю на эту проблему в течение часа, но я не могу найти, что с этим не так, когда я запускаю python manage.py shell и импортирую подобное from polls.models import Post и вызываю оболочку Post.objects.all() , она показывает ошибку, подобную этой "django.db.utils.OperationalError: no such table: polls_post"

Как я могу это решить?

Это polls.models.py

 from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
  

Это 0001_initial.py

 # Generated by Django 3.1 on 2020-08-31 02:53


from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Post',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200)),
                ('content', models.TextField()),
                ('date_posted', models.DateTimeField(default=django.utils.timezone.now)),
                ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
  

Комментарии:

1. вы запускали python manage.py migrate после pyhon manage.py makemigrations ??

2. Я сделал, но он говорит мне, что изменений не обнаружено, и я делал это раньше

3. какую БД вы используете?? у вас есть клиент для проверки базы данных с помощью пользовательского интерфейса?? Что-то вроде MySQL-workbench??

4. я думаю, у вас есть таблица с именем ‘Post’, в то время как вы должны были получить ‘polls_post’

Ответ №1:

Вы должны запустить команду migrate, которая отвечает за применение и отмену миграций.