Django 1.9中使用DRF定义序列化器出现SyntaxError语法错误求助
解决Django 1.9 + DRF序列化器的语法错误
嘿,这问题太常见啦!你代码里的语法错误根源很简单——两个序列化器类的定义行末尾都漏掉了冒号(:)。
先给你修正后的可运行代码:
from rest_framework import serializers from slack.models import WebhookTransaction from slack.message import Message class WebhookTransactionSerializer(serializers.ModelSerializer): class Meta: model = WebhookTransaction fields = '_all_' class MessageSerializer(serializers.ModelSerializer): class Meta: model = Message fields = '_all_'
错误原因说明
在Python里,定义类、函数或者条件分支这类代码块时,声明行的末尾必须加上冒号,用来告诉解析器接下来是该代码块的内容。你原来的代码里,class WebhookTransactionSerializer(serializers.ModelSerializer)和class MessageSerializer(serializers.ModelSerializer)这两行都没加冒号,Python无法识别这是类定义的开始,直接就抛出了语法错误。
顺便提一句:fields = '_all_'在Django 1.9里是完全合法的(这个语法从Django 1.8就已支持),所以你不用担心里面的字段配置逻辑,只要补上冒号就能正常运行啦。
内容的提问来源于stack exchange,提问作者Srikant Singh
相关产品推荐
相关产品推荐

