Wpis z mikrobloga

#django
Mam szybkie pytanko, uczę się Django z "Django Unleashed" ale jedna rzecz nie jest do końca jasna dla mnie stamtąd. Ogólnie jestem na formularzach odnośnie updatu zawartości. Moja CBV wygląda następująco:

class NewsLinkUpdate(View):
form_class = NewsLinkForm
template_name = 'organizer/newslink_form_update.html'

def get(self, request, pk):
newslink = get_object_or_404(NewsLink, pk=pk)
context = {
'form': self.form_class(instance=newslink),
'newslink': newslink,
}
return render(request, self.template_name, context)

def post(self, request, pk):
newslink = get_object_or_404(NewsLink, pk=pk)
bound_form = self.form_class(request.POST, instance=newslink)
if bound_form.is_valid():
new_newslink = bound_form.save()
return redirect(new_newslink)
else:
context = {
'form': bound_form,
'newslink': newslink,
}
return render(request, self.template_name, context)

Trochę niejasna jest dla mnie funkcja POST, a mianowicie linijka druga odnośnie pobierania danych. Po co używać tam instance skoro wszystkie dane według mojego rozumowania pobierane są z HTTPRequest metodą POST? Przy tworzeniu nowego obiektu Newslink wystarczyła taka funkcja

def post(self, request):
bound_form = self.form_class(request.POST)
if bound_form.is_valid():
new_object = bound_form.save()
return redirect(new_object)
else:
return render(request, self.template_name, {'form': bound_form})
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach