Часть2 учебника по Django пошла не так
Я следую учебнику и получил отслеживание ~>
Я сделал makemigrations и migrate, ничего не изменилось и не помогло. После я включил в db.sqlite3 вручную таблицы и это дало мне еще один traceback ~>
это мой models.py ~>
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
и мой manage.py ~>
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
Что я делаю не так?
Похоже, что вы создали свое приложение, используя команду manage.py startapp polls
, но я вижу mysite
в вашем manage.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
Django создает имена таблиц в базе данных, используя комбинацию имени приложения и имени модели. В вашем случае имя приложения должно быть polls
, я полагаю, но по какой-то причине имя приложения в вашем manage.py
будет mysite
.
Я предлагаю вам начать с нуля и повторить попытку с помощью команды manage.py startapp <app name>
, будьте осторожны с изменением любых ссылок на фактическое имя приложения вручную в любом из сгенерированных файлов.