Python 在django admin中验证解析的数据

Python 在django admin中验证解析的数据,python,django,validation,Python,Django,Validation,我是Django的新手。我想在Django admin中对上传的xml文件中解析的数据进行重复验证检查 管理员上传xml文件 提取所需的数据 验证数据库中是否已存在数据 如果是,则引发validationError 如果否,则保存模型 除第3点外,上述各点均有效。我不确定应该在admin.py的哪个位置检查该值是否已经存在 代码来自admin.py def save_model(self, request, obj, form, change): if not change:

我是Django的新手。我想在Django admin中对上传的xml文件中解析的数据进行重复验证检查

  • 管理员上传xml文件
  • 提取所需的数据
  • 验证数据库中是否已存在数据
  • 如果是,则引发validationError
  • 如果否,则保存模型
  • 除第3点外,上述各点均有效。我不确定应该在
    admin.py
    的哪个位置检查该值是否已经存在

    代码来自admin.py

    def save_model(self, request, obj, form, change):
            if not change:
                category_name, module_names = \
                    self.handle_uploaded_file(request.FILES['category_file'])
     .......................................................................
    
    def handle_uploaded_file(self, f):
    #Upload the file
    ..................................
        return self.parse_uploaded_xml(name)
    
    def parse_uploaded_xml(self, name):        
        tree = ET.parse(name)
        root = tree.getroot()
    
        category_name = root[0].text
        ..............................
        #return the category name and module name
    
    来自models.py的代码

    category_name = models.CharField(max_length=150, blank=False, null=True, default="", unique=True)
    module_name = models.TextField(blank=False, null=True)
    
    我想使用以下代码进行验证

    def clean_category_name(self):
            if self.category_name and Category.objects.filter(category_name=self.category_name).exists():
                raise ValidationError('This category is already in the database. Please supply a different category.')
    
    unique=true
    在上载文件/添加类别时不起作用,但在编辑单个类别时起作用

    非常感谢您的任何帮助/链接/建议。提前谢谢