gpt4 book ai didi

django - 覆盖save_model()函数时如何在admin.py中使用验证?

转载 作者:行者123 更新时间:2023-12-03 15:53:26 26 4
gpt4 key购买 nike

Admin.py

class CourseAdmin(admin.ModelAdmin):

list_display = ('course_code', 'title', 'short' )

def save_model(self, request, obj, form, change):
import os

#obj.author = request.user
dir_name = obj.course_code
path = settings.MEDIA_ROOT +os.sep+'xml'+os.sep+dir_name

#if user updates course name then course would be renames
if change:
dir_name = Course.objects.get(pk=obj.pk).course_code
src = settings.MEDIA_ROOT +os.sep+'xml'+os.sep+dir_name
os.rename(src,path)
else:
if not os.path.exists(path):
os.makedirs(path)
obj.save()

else:
raise ValidationError('Bla Bla')


admin.site.register(Course, CourseAdmin)

当我提出验证错误时,它不起作用,并显示错误页面
异常类型:验证错误
异常值:[u'Bla Bla']

最佳答案

根据model admin methods上的django文档,无论如何,save_model()必须保存对象。在保存之前,只能使用此方法执行额外的处理。我同意Wogan的观点,您应该只创建一个自定义ModelForm并覆盖其clean()方法并在此处引发错误。

关于django - 覆盖save_model()函数时如何在admin.py中使用验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5114349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com