模型类有约束群改bug修复(源码)
有唯一索引情况下,不能直接完成群改
from django.db import models
from utils.model import BaseModel
class Book(BaseModel):
# 单个字段有唯一索引
name = models.CharField(max_length=64, unique=True)
# ...
class Meta:
db_table = 'old_boy_book'
verbose_name = '书籍'
verbose_name_plural = verbose_name
# 多个字段有联合唯一
unique_together = ('name', 'publish')
修改drf源码:rest_framework/validators.py
"""
修改该文件下的所有
if self.instance is not None:
为
if self.instance is not None and not isinstance(self.instance, list):
eg:
if self.instance is not None and not isinstance(self.instance, list):
return queryset.exclude(pk=self.instance.pk)
"""
不做处理的报错信息
# 错误信息
"""
'list' object has no attribute 'pk'
或者
'list' object has no attribute 那些有唯一索引的字段名
"""
# 原因分析
"""
validators.py就是为那些有唯一索引字段提供校验的模块,而再群改环境下,self.instance的值不是model类对象,而是装有model类对象的list,当然不能直接访问model类的字段
"""