4

これらのモデルを考えてみましょう

class Session(models.Model):
    staff = models.ForeignKey(User, verbose_name='Supplier')
    start_time = models.DateTimeField(_('start'))
    end_time = models.DateTimeField(_('end'))

class Participation(models.Model):
    session = models.ForeignKey(Session)
    atendee = models.ForeignKey(User, verbose_name='Attendee')
    class Meta:
        unique_together = ('session', 'attendee')

インラインフォームセットを使用しParticipationsSessionエディターに管理しています。

次のシナリオを想像してください。

  • 出席者との参加を追加します
  • この参加を削除します (削除チェックボックスをオンにします)
  • 同じ出席者で追加し直します (改行)

このフォームセットを送信すると、制約エラーが発生します

このセッションと出席者の参加は既に存在します。

検証では、削除された子が考慮されていないようです。
それは正常な動作と見なされますか?
その場合、どうすればこのケースを適切に管理できますか?


この動作を再現するには、次の管理クラスで管理サイトを使用します。

class PartInline(admin.TabularInline):
    model = Participation

class SessionAdmin(admin.ModelAdmin):
    inlines = [PartInline]

admin.site.register(Session, SessionAdmin)
4

0 に答える 0