Ich habe einen Webservice mit Django gemacht. Es war fertig, aber ich überprüfte noch einmal, wo es flauschig war.
Beispiel:
views.py
class ThreadView(ModelFormMixin, generic.DetailView):
model = Group
form_class = CommentCreateForm
def form_valid(self, form):
group_pk = self.kwargs['pk']
comment = form.save(commit=False)
comment.create_user = self.request.user
comment.post = get_object_or_404(Group, pk=group_pk)
comment.save()
return redirect('<App Name>:group_thread', pk=group_pk)
def post(self, request, *args, **kwargs):
form = self.get_form()
if form.is_valid():
return self.form_valid(form)
else:
self.object = self.get_object()
return self.form_invalid(form)
form.save(commit=False) Gibt eine Instanz des Modellobjekts zurück, das dem Formular zugeordnet ist. Registrieren Sie sich nicht in der DB
Ich habe Render verwendet, aber ich habe es richtig verwendet
HttpResponse Übergeben Sie einen String oder Iterator (und er ist offiziell geschrieben, aber ich habe ihn nicht verwendet, sodass ich ihn mir nicht wirklich vorstellen kann.)
render Die Rendermethode verwendet grundsätzlich drei Argumente: request, template_name und context. Anfrage: erhalten oder posten Vorlagenname: HTML-Datei Kontext: Informationen zu den in der DB gespeicherten Daten In der Beschreibung des offiziellen Dokuments "Laden Sie die Vorlage, füllen Sie den Kontext und geben Sie das Ergebnis des Renderns der Vorlage in einem HttpResponse-Objekt zurück."
redirect Verwerfen Sie die vom POST zurückgegebenen Daten und wechseln Sie zu einer anderen Ansicht
Recommended Posts