1

如何确保clean()在执行时调用该方法queryset.update('somefield'=True)。我还需要确保我能捕捉到任何被方法ValidationError抛出的东西clean()

我对 django ORM 的经验很少。任何帮助将非常感激。

4

1 回答 1

1

clean使用查询集的功能时不调用模型的方法update。查看更新文档

您将不得不编写自己的 admin_action 以确保调用该方法。文档中有示例。

我想你想要像 -

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)
于 2013-02-26T17:55:35.560 回答