2017-07-28 93 views
1

我用Serializer創建一個Django REST API,但是如果我測試序列化程序,我只收到一個空的結果。Django SerializerModel不返回字段

實際上我應該接收

>>> from heating.serializers import RoomSerializer 
>>> s = RoomSerializer() 
>>> print(repr(s)) 
RoomSerializer(): 
... LIST OF FIELDS WITH SOME ADDITIONAL INFOMRATION... 
>>> 

模型

class Room(models.Model): 
    id = models.IntegerField(auto_created=True, primary_key=True) 
    name = models.CharField(max_length=100, blank=True, default='') 
    description = models.TextField() 

    class Meta: 
     ordering = ['id'] 

串行

class RoomSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Room 
     fields = ('id', 'name', 'description') 

殼牌輸出

>>> from heating.serializers import RoomSerializer 
>>> s = RoomSerializer() 
>>> print(repr(s)) 
RoomSerializer(): 
>>> 

我強烈地相信,在我的代碼中有一個錯誤,但我不知道在哪裏?

回答

0

您沒有向序列化程序提供任何信息,爲什麼它應該在沒有提供時返回數據?

請花點時間穿過tutorial

+0

謝謝你的YouTube回覆。我讀了這個教程一個死它。第三部分爲http://www.django-rest-framework.org/tutorial/1-serialization/#using-modelserializers:我應該替換代碼。和我的代碼相比,它是一樣的。所以我不明白什麼是錯的。 –

+1

對不起,這是我的不好。我誤解並理解這是關於這些領域的缺失值。我把你的代碼示例放在這裏,它給了我期望的表示。正如你可以在https://gist.github.com/xordoquy/0453714a8c28afbcc62da05d705cd56f – Linovia

+0

看到..現在它的工作。但我完全不知道什麼是錯的。我只是重新啓動'python manage.py shell'。感謝您澄清,我的觀念是正確的。 –