如何确保在执行clean()
时调用queryset.update('somefield'=True)
方法。我还需要确保抓住ValidationError
方法引发的任何clean()
。
我对django ORM的经验很少。任何帮助将不胜感激。
答案 0 :(得分:1)
使用查询集的clean
函数时,不会调用模型'update
方法。看看update documentation。
您将不得不编写自己的admin_action以确保调用该方法。 docs中有一些例子。
我想你想要像 -
这样的东西from django.contrib import admin
from yourapp.models import YourModel
def update_and_clean(modeladmin, request, queryset):
for obj in queryset:
obj(some_field=True)
obj.clean()
obj.save()
class YourModelAdmin(admin.ModelAdmin):
actions = [update_and_clean]
admin.site.register(YourModel, YourModelAdmin)