関連する 2 つの (foreignkey リレーションによる) モデルがあり、インラインを持つ親の管理モデルを作成しました。いくつかのケース (管理者でブール フィールドによって編集) では、以前のオブジェクト (インライン) をすべて削除し、新しいオブジェクトを作成する必要があります。私は現在のオブジェクトのすべてのプロパティを取得し、(インライン) オブジェクトを再作成する必要があるかどうかを判断できる save_model で作成しようとしました。モデル:
class Model1(models.Model):
reformat = models.BooleanField(default=False)
...
class Model2(models.Model):
model1 = ForeignKey(Model1, related_name='model2')
...
管理者:
class Model2Inline(admin.TabularInline):
model = Model2
class Model1Admin(admin.ModelAdmin):
inlines = [Model2Inline]
def save_model(self, request, obj, form, change):
super(Model1Admin, self).save_model(request, obj, form, change)
if obj.reformat:
obj.model2.all().delete()
# creating new objects
...
obj.save()
しかし、model_save メソッドでこれらのオブジェクトを削除しようとすると、ValidationError が発生します。この問題を解決する他の可能性はありますか?