【发布时间】:2018-12-29 03:07:19
【问题描述】:
class Hello(models.Model):
name = models.CharField(max_length=8, blank=True)
column_create_no_update = models.CharField(max_length=8, blank=True)
class HelloResource(ModelResource):
def dehydrate(self, bundle):
if (bundle.request.META['REQUEST_METHOD'] == 'PUT') and ('column_create_no_update' in bundle.data.keys()):
del bundle.data['column_create_no_update']
return bundle
1) 创建记录
createData['name'] = 'foo name';
createData['column_create_no_update'] = "don't update me";
Ajax POST 在 db 中创建一条记录。
2) 使用ajax调用更新表时,
updateData['name'] = 'foo name updated';
Ajax PUT 更新记录。更新中没有提供“column_create_no_update”。
我注意到在函数 dehydrate() 中,bundle.data['column_create_no_update'] = '' 和 bundle.data['column_create_no_update'] 被删除。 返回'bundle'时,删除后只有bundle.data['name']存在。
但是,在数据库中,'column_create_no_update' 被更新为 ''。我希望保留它:column_create_no_update = "don't update me"。
为什么用空字符串''更新它?
【问题讨论】: