0
私はモデルインスタンスをコピーするビューを持っています。 new_event.pk = Noneを設定し、ユーザーがキャンセル、変更、保存するためのフォームをレンダリングします。保存しないでmany2manyフィールドのモデルインスタンスをコピーする
しかし、M2Mフィールドはフォーム内では空白です。元のモデルインスタンスと同じ値を事前入力しておくことをお勧めします。
views.py
def event_copy(request, id=None):
new_event = get_object_or_404(Event, id=id)
new_event.pk = None # autogen a new primary key
form = EventForm(request.POST or None, instance=new_event)
if form.is_valid():
event = form.save()
messages.success(request, "New event created")
return HttpResponseRedirect(event.get_absolute_url())
context = {
"form": form,
}
return render(request, "events/event_form.html", context)
コピーされているイベント・モデルは、2つのM2Mのフィールドがあり、これらは両方の形式で空白である:
models.py
class Event(models.Model):
title = models.CharField(max_length=120)
...
blocks = models.ManyToManyField(Block)
facilitators = models.ManyToManyField(User)
どのようにこれらのManyToManyFieldsを事前入力しますか?