clean()
実行中にメソッドが呼び出されていることを確認するにはどうすればよいですかqueryset.update('somefield'=True)
。また、メソッドValidationError
によってスローされたものを確実にキャッチする必要があります。clean()
私はdjango ORMの経験がほとんどありません。どんな助けでも大歓迎です。
clean()
実行中にメソッドが呼び出されていることを確認するにはどうすればよいですかqueryset.update('somefield'=True)
。また、メソッドValidationError
によってスローされたものを確実にキャッチする必要があります。clean()
私はdjango ORMの経験がほとんどありません。どんな助けでも大歓迎です。
クエリセットの関数を使用する場合、モデルのclean
メソッドは呼び出されません。アップデートのドキュメントupdate
をご覧ください。
メソッドが確実に呼び出されるようにするには、独自の 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)