Печать объектов в Django

Поэтому я успешно подключил Django к уже существующей базе данных (проверяю, проверяю и синхронизирую), и я создал приложение и проект, и все это (я читаю книгу Django, и я нахожусь в главе 5), но когда я на самом деле запускаю его и печатаю, я получаю (предполагаемую) ошибку. Хотя в python я правильно импортирую то, что мне нужно ( from myapp.models import Artist ), но если я попытаюсь напечатать, например, первые пять строк в таблице ( print Artist.objects.all()[:5] ), Я получаю это:

 [<Artist: Artist object>, <Artist: Artist object>, <Artist: Artist object>, <Artist: Artist object>, <Artist: Artist object>] 

Почему он фактически не печатает значения вместо того, что кажется заполнителем? Здесь что-то не хватает?

3 Solutions collect form web for “Печать объектов в Django”

Django использует ORM (Object-Relational Mapper), который переводит данные между объектами Python и строками базы данных. Поэтому, когда вы используете его для получения элемента из базы данных, он преобразует его в объект Python.

Если этот объект не определяет, как отображать себя как текст, Django делает это за вас. Python делает то же самое:

 >>> class MyObject(object): ... pass ... >>> [MyObject(), MyObject()] [<__main__.MyObject object at 0x0480E650>, <__main__.MyObject object at 0x0480E350>] 

Если вы хотите увидеть все фактические значения строки для каждого объекта, используйте values .

Вот пример из документов:

 # This list contains a Blog object. >>> Blog.objects.filter(name__startswith='Beatles') [<Blog: Beatles Blog>] # This list contains a dictionary. >>> Blog.objects.filter(name__startswith='Beatles').values() [{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}] 

UPDATE: в Python 3.x используйте __str__ вместо __unicode__

То, что вы видите, это список экземпляров модели Artist. Ваши значения находятся в объекте python. Если вы хотите, чтобы представление этих экземпляров было более полезным, вы должны определить метод __unicode__ чтобы они могли напечатать что-то полезное:

https://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#unicode

Это не местозаполнитель, его фактическое представление объекта, преобразованное в unicode.

если вы хотите использовать метод печати ovveride, метод unicode в самой модели

  def __unicode__(self): return u'%s' % (self.id) 

здесь примерная модель

 class unit(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=255) def __unicode__(self): return u'%s' % (self.name) print(unit.objects.all()) [unit: KG, unit: PCs] 
  • SQS с конфигурацией сельдерея
  • Не удалось выполнить запрос objects.all ()
  • Использование StaticLiveServerCase от Django и промежуточного сервера
  • Как опубликовать в API-интерфейсе Django REST Framework с помощью связанных моделей
  • Как разрешить «итератор должен возвращать строки, а не байты»
  • Python разделил URL-адрес, чтобы найти имя и расширение имени
  • Могут ли модели Django использовать функции MySQL?
  • Django: ValueError при сохранении экземпляра в поле ForeignKey
  • Django - функция внутри модели. Как назвать это с точки зрения?
  • Django - heroku, авария при развертывании / запуске
  • Django + FastCGI - случайное повышение OperationalError
  •  
    Interesting Posts for Van-Lav

    Самый простой способ создать градиент цвета на excel с помощью python / pandas?

    В возвышенном, почему def run работает в одном случае, а не в другом случае, и как я могу заставить его работать?

    python udisks – перечисление информации об устройстве

    Объединение пользовательских функций с помощью CountVectorizer

    скопировать 2D-массив в 3-й размер, N раз (Python)

    Scipy разреженный инверс или spsolve приводят к UMFPACK_ERROR_OUT_OF_MEMORY

    Основная ошибка синтаксиса программы Hello Hello

    Как определить многомерные массивы в python?

    Python BigQuery allowLargeResults с pandas.io.gbq

    Свернуть несколько подмодулей на одно расширение Cython

    Как вы управляете временным каталогом, чтобы гарантировать, что он будет удален при закрытии программы?

    Легенда не появляется в участке сложенной площади Матплотлиба

    Неудовлетворительная производительность работы с Python RQ

    Является get_result () требуемым вызовом для put_async () в Google App Engine

    Удаление тегов span из супа BeautifulSoup / Python

    Python - лучший язык программирования в мире.