Django反序列化器,其字段设置为serialize = False

|| [编辑:使用django-1.1.1] 你好, 我正在使用django类,该类存储与对象图标相对应的blob(更精确地编码为b64的字符串)。 我将对象序列化为json以与不同的前端客户端进行通信。 我不想在json结果中显示纯图标blob(但将其作为图像显示在某个url下),因此我的icon字段定义如下:
icon = models.TextField(null=True, serialize=False)
但是当需要保存对象时,我会丢失图标,因为很明显,该值不是由传入的json字典设置的。 我想这样写一个hack:
class MyIconizedClass(models.Model):
    def __init__(self, *args, **kwargs):
        if self.pk is not None and self._icon is None:
            old_self = MyIconizedClass.object.get(pk=self.pk)
            self.icon = old.self.icon
对此并不十分满意,因为它每次都会在DB中查询,而且,如果图标实际上是None,它将无限期递归。 另一种方法是重写解串器。 有没有使用Django内部机制的解决方法?     
已邀请:
尝试这个:
for deserialized_object in serializers.deserialize(\"json\", data):
    try:
        existing_object = MyIconizedClass.objects.get(pk=deserialized_object.pk)
        deserialized_object.icon = existing_object.icon
    except MyIconizedClass.DoesNotExist:
        pass     
    deserialized_object.save()
它还会查询数据库,但不会引起任何递归。     
我更改了模型,以减少查询贪婪。
class MyIconizedClass(models.Model):
    ...
    ...


class IconClass(models.Model):
    obj = models.ForeignKey(MyIconizedClass)
    blob = models.TextField()
当使用某些URL入口点(例如)时,我仅按需查询IconClass表 GET / iconized / 42 / icon PUT /图标化/ 42 / icon 删除/ iconized / 42 / icon 访问对象本身时,我不需要了解图标(GET / iconized / 42)。     

要回复问题请先登录注册