Ich versuche, ein Formular zu implementieren, das einfach Daten präsentiert, und bietet dem Benutzer die Wahl von "Akzeptieren" oder "Verweigern". Ich sende die Daten, die ich anzeigen möchte, durch Überschreiben der get_context_data()
Methode, und ich habe zwei <input type="submit">
's auf der Vorlage. HierWas ist eine effizientere Möglichkeit, eine feldfreie Form ohne Dummy-Formulare zu erstellen.Form?
ist die Ansicht:
class FriendResponseView(LoginRequiredMixin, FormView):
form_class = FriendResponseForm
template_name = 'user_profile/friend_response.html'
success_url = '/'
def get_context_data(self, **kwargs):
context = super(FriendResponseView, self).get_context_data(**kwargs)
context['respond_to_user'] = self.kwargs.get('username')
responding_profile = Profile.objects.get(
user__username=self.request.user)
requesting_profile = Profile.objects.get(
user__username=self.kwargs['username'])
friend_object = Friend.objects.get(requester=requesting_profile, accepter=responding_profile)
context['accepter_asks'] = friend_object.requester_asks
return context
def form_valid(self, form):
super(PairResponseView, self).form_valid(form)
if 'accept' in self.request.POST:
# do something
else:
return redirect('/')
Da das Formular keine Eingabe oder Auswahl nicht akzeptiert, ich habe diese Dummy-Form:
class FriendResponseForm(forms.Form):
pass
Es muss eine effizientere, Django Weg das gleiche Ergebnis erzielen. Wie würde ich darüber gehen?