我是Django的新手。我想对Django admin中上传的xml文件中的解析数据进行重复验证检查。
除了第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
在上传文件/添加类别时不起作用,但在编辑单个类别时它可以正常工作。
非常感谢任何帮助/链接/建议。提前谢谢。