Django REST Framework报错:无法从basics.serializers导入ArticleSerializer
错误原因与修复步骤
你有三处错误导致导入失败,按顺序修复即可:
- 第一处:DRF序列化器模块导入拼写错误
代码第一行写的是from rest_framework import serializer,少了末尾的s,正确写法是:from rest_framework import serializers - 第二处:类方法缩进错误
create和update方法是ArticleSerializer类的成员方法,你现在把它们写在了类外部,需要缩进一层放到类内部,同时注意create方法要对传入的字典做解包操作,否则会触发参数错误:
修正后的类代码结构:class ArticleSerializer(serializers.Serializer): title = serializers.CharField(max_length=100) author = serializers.CharField(max_length=100) email = serializers.EmailField(max_length=300) date = serializers.DateField() # 注意缩进,放到类内部 def create(self, validated_data): return Article.objects.create(**validated_data) def update(self, instance, validated_data): instance.title = validated_data.get('title', instance.title) instance.author = validated_data.get('author', instance.author) instance.email = validated_data.get('email', instance.email) instance.date = validated_data.get('date', instance.date) instance.save() return instance - 第三处:文件名与导入路径不匹配
你当前序列化器文件名为serializer.py(单数),但导入语句写的是from basics.serializers import ArticleSerializer(复数),二者要保持一致:要么把文件名改成serializers.py,要么把导入语句改成from basics.serializer import ArticleSerializer。
全部修复完成后,重启Django Shell重新执行导入命令即可生效。
内容的提问来源于stack exchange,提问作者sparsh
相关产品推荐
相关产品推荐

