0
我有類似這樣的一個問題:Additional (non model) fields in ModelSerializer在ModelSerializer其他信息不在使用型號
我想創建一個對象,具有這樣的modelserializer:
class CreateUserSerializer(serializers.ModelSerializer):
user = serializers.CharField(source="username")
password = serializers.CharField()
password2 = serializers.WritableField()
...
class Meta:
model = User
fields = ('user', "password", "password2", ...)
很顯然,我不是有興趣保存密碼2,這只是爲了比較。
理想這應該做的伎倆,但對於原因,其沒有按預期工作:
def restore_object(self, attrs, instance=None):
tags = attrs.pop('password2', None)
obj = super(CreateUserSerializer, self).restore_object(attrs, instance)
obj.tags = tags
logging.info(u"Object gets restored, field 'password2' gets removed, list with arguments for object: {0}".format(tags))
return obj
我得到的錯誤是:
'User' object has no attribute 'password2'
...
/home/jan/projekte/alarmapp/eclipse_workspace/AlarmServer/AlarmApp/src/external/rest_framework/fields.py in get_component
55. val = getattr(obj, attr_name)
任何想法,爲什麼這是不工作?