首页 文章

python shell中的“IndentationError:unindent与任何外部缩进级别不匹配”

提问于
浏览
0

我在django-rest-framework中编写了一个代码,但是出错了 . 我的 class 是 -

class SnippetSerializer(serializers.Serializer):

    id = serializers.IntegerField(read_only=True)

    title = serializers.CharField(required=False, allow_blank=True, max_length=100)
    code = serializers.CharField(style={'base_template': 'textarea.html'})
    linenos = serializers.BooleanField(required=False)
    language = serializers.ChoiceField(choices=LANGUAGE_CHOICES, default='python')
    style = serializers.ChoiceField(choices=STYLE_CHOICES, default='friendly')

当我在python shell中写“from snippets.serializers import SnippetSerializer”时出现了这个错误 - “IndentationError:unindent与任何外部缩进级别都不匹配”

我搜索了解决方案,却一无所获 . 请有人帮帮我

1 回答

  • 0

    如果将以下代码粘贴到Python shell中:

    class SnippetSerializer(serializers.Serializer):
        id = serializers.IntegerField(read_only=True)
    
        title = serializers.CharField(required=False, allow_blank=True, max_length=100)
        code = serializers.CharField(style={'base_template': 'textarea.html'})
        linenos = serializers.BooleanField(required=False)
        language = serializers.ChoiceField(choices=LANGUAGE_CHOICES, default='python')
        style = serializers.ChoiceField(choices=STYLE_CHOICES, default='friendly')
    

    您将遇到问题,因为Python shell会认为您的类定义在id行后面的第一个空行处结束 .

    要解决此问题,您需要删除空行:

    class SnippetSerializer(serializers.Serializer):
        id = serializers.IntegerField(read_only=True)
        title = serializers.CharField(required=False, allow_blank=True, max_length=100)
        code = serializers.CharField(style={'base_template': 'textarea.html'})
        linenos = serializers.BooleanField(required=False)
        language = serializers.ChoiceField(choices=LANGUAGE_CHOICES, default='python')
        style = serializers.ChoiceField(choices=STYLE_CHOICES, default='friendly')
    

相关问题