2014-12-30 5 views
5

Django Rest Framework tutorial on serializers'u takip ediyorum, ancak bazı olağandışı davranışlar buluyorum. Baskı repr (serializer_instance) görünüşte yararlı muayene yazdırmak için beklenen yerlerde, sadece geri bu temsilini alabilirsiniz:Django Rest Framework serializer gösterimi çalışmıyor

<snippets.serializers.SnippetSerializer object at 0x10220f110>. 

My code eğitimde bununla tam olarak uyumlu görünüyor ve ben Django 1.7 ve Python kullanıyorum 2.7. Bunun neden olabileceği hakkında bir fikri olan var mı?

parçacıkları/serializers.py:

from django.forms import widgets 
from rest_framework import serializers 
from snippets.models import Snippet, LANGUAGE_CHOICES, STYLE_CHOICES 

class SnippetSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = Snippet 
     fields = ('id', 'title', 'code', 'linenos', 'language', 'style') 

parçacıkları/models.py:

from django.db import models 
from pygments.lexers import get_all_lexers 
from pygments.styles import get_all_styles 

LEXERS = [item for item in get_all_lexers() if item[1]] 
LANGUAGE_CHOICES = sorted([(item[1][0], item[0]) for item in LEXERS]) 
STYLE_CHOICES = sorted((item, item) for item in get_all_styles()) 

class Snippet(models.Model): 
    created = models.DateTimeField(auto_now_add=True) 
    title = models.CharField(max_length=100, blank=True, default='') 
    code = models.TextField() 
    linenos = models.BooleanField(default=False) 
    language = models.CharField(choices=LANGUAGE_CHOICES, default='python', max_length=100) 
    style = models.CharField(choices=STYLE_CHOICES, default='friendly', max_length=100) 

    class Meta: 
     ordering = ('created',) 

kabuk:

$ python manage.py shell_plus 
>>> from snippets.serializers import SnippetSerializer 
>>> serializer = SnippetSerializer() 
>>> serializer 
    <snippets.serializers.SnippetSerializer object at 0x10220f110> 
>>> print repr(serializer) 
    <snippets.serializers.SnippetSerializer object at 0x10220f110> 
+0

Ben de öğretici we should anlaşılacağı benim kabuk üzerinde ayrıntılı "repr" çıkışını görmüyorum -0/Django 1.6, hangi serileştirici kullandığımı farketmeden – maxm

cevap

0

Sana serileştirici nesnesi dönüyor bu olduğuna inanıyorum . Eğer veri özelliğine bakın zorunda gerçek verileri dönmek için: Ben sürümü 2.4 yüklü olduğunu fark edene kadar

print repr(serializer.data) 
+2

kullanıyorum. Bu bana verileri gösteriyor (tıpkı 'print serializer.data' gibi). Fakat öğreticide, 'repr (serializer)' seriyeçinin şemasını - tüm sütun isimlerini, türlerini ve geçerliliğini - incelemek için kullanılır. Aradığım şey bu –

2

ben aynı problem vardı.

Basitçe sürüm 3.0

Ör için sürüm notlarını ve güncelleme okumak Eğer bir requirements.txt kullanırsanız, hiç dinlenme çerçeve satırı değiştirin:

djangorestframework==3.0 

ve çalıştırmak

pip install -r requirements.txt