Почему PyCharm Terminal дал разные результаты? - PullRequest
1 голос
/ 14 апреля 2020

Вот аналогичный вопрос Pycharm Terminal и запустить, давая разные результаты , как вы можете видеть, что были проблемы с Python версиями. Вот что у меня есть: (разница в выводе последних строк)

Терминал Ubuntu:

***@***:~/Documents/Coding/Django/myfirst$ python3 manage.py shell
Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from articles.models import Article, Comment
>>> a = Article.objects.get(id = 1)
>>> a
<Article: How to...?>
>>> a.comment_set.all()
<QuerySet [<Comment: John>, <Comment: Jack>, <Comment: Nelson>, <Comment: Bill>]>

Терминал PyCharm:

***@***:~/Documents/Coding/Django/myfirst$ python3 manage.py shell
Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from articles.models import Article, Comment
>>> a = Article.objects.get(id = 1)
>>> a.id
1
>>> a.article_Title
'How to...?'
>>> a.comment_set.all()
<QuerySet [<Comment: Comment object (1)>, <Comment: Comment object (2)>, <Comment: Comment object (3)>]>

Так что возвращается идентификатор Комментарий вместо имени.

Большое спасибо за любые советы!

Добавление кода из manage.py

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys


def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myfirst.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()

1 Ответ

0 голосов
/ 14 апреля 2020

Это интересно, но я думаю, единственное отличие состоит в том, как интерактивная консоль печатает объекты. Это как python оболочка:

<__main__.A object at 0x7f1466211630>

против меня python

<__main__.A at 0x7f5a270fb4e0>

Я постараюсь выяснить, почему это происходит.

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