4

Здравствуйте. Изучаю Django по djangogirls. Нарвался на ошибку. Застрял на разделе Django ORM.

Все просто: мы импортируем модель Post из blog.models. Давай попробуем получить все записи блога еще раз:

>>>Post.objects.all() 
[<Post: my post title>, <Post: another post title>] 

а у меня:

Post.objects.all() 
[]

... и далее ниже ошибка:

    >>> me = User.objects.get(username='ola')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/loma/djanjogirls/myvenv/lib/python3.4/site-packages/django/db/models/manager.py", line 122, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/loma/djanjogirls/myvenv/lib/python3.4/site-packages/django/db/models/query.py", line 387, in get
    self.model._meta.object_name
django.contrib.auth.models.DoesNotExist: User matching query does not exist.

git - http://goo.gl/Z0yZj3

insolor
  • 49,104

2 Answers2

4

Пустой список говорит о том, что в таблице нет ни одной записи. Просто их надо создать.

Способы создания:

p = Post(autor=user, title="заголовок", text="текст")
p.save()

p = Post.objects.create(autor=user, title="заголовок", text="текст")

После этого при выборке список будет с результатами.

Первым пользователем лучше создать суперпользователя из коммандной строки. Заходим в папку с файлом manage.py и пишем manage.py createsuperuser

Мистер Фикс
  • 2,295
  • 2
  • 12
  • 27
  • Я так и делаю далее по туториалу - http://tutorial.djangogirls.org/ru/django_orm/
    Post.objects.create(author=me, title='Sample title', text='Test')
    >>> from django.contrib.auth.models import User
    >>> User.objects.all()
    me = User.objects.get(username='ola') И далее error выше - django.contrib.auth.models.DoesNotExist: User matching query does not exist.
    – Lita Litar Aug 29 '16 at 07:52
  • Это невозможно, потому как ошибка DoesNotExist при попытке найти пользователя, означает, что такой записи не найдено. А если её не найдено, то значит её и нету. Посмотрите сначала есть ли в базе ваши модели, потому как в обоих запросах джанго ничего не находит. – Мистер Фикс Aug 29 '16 at 08:11
0

Судя по описанию проблемы, вы не сделали миграции для дефолтных таблиц проекта. Повторите создание миграций без аргументов

python manage.py makemigrations
python manage.py migrate
VenZell
  • 19,872
Ivan Semochkin
  • 1,720
  • 11
  • 19