所以我有这个日历网站,用户可以向其中添加事件。他们可以创建一个新事件以添加到日历中,或者可以编辑已经添加到日历中的当前事件。但是,当他们编辑已添加的事件并单击“提交”按钮将其发布时,它将创建一个全新的事件,而不是编辑当前事件。我尝试将其添加到他们编辑已添加事件的位置,而不是在提交时创建新事件,而是编辑他们首先单击的当前事件
def event(request, event_id=None):
if event_id:
instance = get_object_or_404(Event, pk=event_id)
print(instance)
else:
instance = Event()
form = EventForm(request.POST or None, instance=instance)
if request.POST and form.is_valid():
event = Event.objects.create(**form.cleaned_data, user=request.user)
return HttpResponseRedirect(reverse('cal:calendar'))
return render(request, 'cal/event.html', {'form': form})
答案 0 :(得分:0)
您不应使用Event.objects.create
。 EventForm是ModelForm,因为您将instance
传递给它;因此,您可以调用其save
方法。
if form.is_valid():
event = form.save(commit=False)
event.user=request.user
event.save()
return HttpResponseRedirect(reverse('cal:calendar'))