Az előző bejegyzésben (A Django konzol) a BOOK objektumok listázásakor az eredmény nem a legjobban nézett ki:
>>> BOOK.objects.all()
[<BOOK: BOOK object>]
Egészítsétek ki a models.py-t a def __unicode__(self) függvénnyel:
# coding=utf-8
from django.db import models #betölti a models csomagot a django.db-ből
class BOOK(models.Model):
Title = models.CharField(max_length = 256, verbose_name="Cím")
PublishingDate = models.IntegerField(verbose_name="Kiadás dátuma")
def __unicode__(self):
return self.Title
Indítsátok újra a konzolt és próbáljátok ki ismét a lekérdezést:
>>> from books.models import *
>>> BOOK.objects.all()
[<BOOK: Egri csillagok>]
Magyarázat: def __unicode__(self): ez egy függvény, mely karakterlánccá alakítja a könyv objektumot. Minden függvény a def kulcsszóval kezdődik, majd a neve következik, utána pedig zárójelben a paraméterei. Mivel ez a függvény az osztályunkhoz tartozik, ezért az első és ebben az esetben egyetlen paramétere a self. Amikor a Django karakterlánccá szeretné alakítani az osztályunkból létrehozott objektumokat, akkor ezt a függvényt fogja meghívni. Bővebben: https://docs.djangoproject.com/en/dev/ref/models/instances/
Utána még egyel beljebb tabulálva jelezzük a pythonnak, hogy a return self.Title a függvényhez tartozik.
A return kulcsszóval adjuk vissza a függvény által kiszámított eredményt, ebben az esetben a könyv címét.
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.