webprogramozás mindenkinek

A __unicode__ függvény

2014/12/15. - írta: pszabady

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. 

Címkék: Python Django
Szólj hozzá!

A bejegyzés trackback címe:

https://djangosuli.blog.hu/api/trackback/id/tr956984971

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.

Nincsenek hozzászólások.
süti beállítások módosítása