मैं अपने सभी फंक्शन बेस्ड व्यू को क्लास बेस्ड व्यू में बदलने की कोशिश कर रहा हूं, मैं इस व्यू को छोड़कर काफी सफल रहा हूं, यह एक डिटेल व्यू है जिसमें पेस्टैक पेमेंट गेटवे शामिल है। किसी भी मदद की अत्यधिक सराहना की जाएगी।
def car_rent_detail_view(request, pk):
object = get_object_or_404(CarRent, id=pk)
paystack = PaystackAccount(
settings.PAYSTACK_EMAIL,
settings.PAYSTACK_PUBLIC_KEY,
object.total_cost
)
context = {'object': object, 'pk_public': settings.PAYSTACK_PUBLIC_KEY, 'currency': 'NGN', 'paystack': paystack,
}
if request.method == 'POST':
if paystack.verify_transaction(request.POST['reference']):
messages.success(request, "payment successfull")
…
car_rented.save()
…
rent_activation.save()
messages.success(request, "Rent successfully updated")
return render(request, 'app/CarRent_detail.html', context=context)
मैं नीचे दिए गए सीबीवी को एफबीवी में बदलना चाहता हूं ताकि मैं इसमें भुगतान कार्यक्षमता जोड़ सकूं।
class ContestantDetail(DetailView, FormMixin):
model = Contestant
context_object_name = 'contestants'
template_name = 'contest/contestant_detail.html'
form_class = VoteForm
def get_success_url(self):
return reverse('contest:contestant-detail', kwargs={'pk': self.object.pk})
def get_context_data(self, *args, **kwargs):
context = super(ContestantDetail, self).get_context_data(*args, **kwargs)
context['vote_contestant'] = Contestant.objects.get(pk=self.kwargs.get('pk'))
return context
def post(self, request, *args, **kwargs):
form = self.get_form()
self.object = self.get_object()
if form.is_valid():
return self.form_valid(form)
else:
return self.form_invalid(form)
def form_valid(self, form, *args, **kwargs):
contestant = Contestant.objects.get(pk=self.kwargs['pk'])
...
contestant.save()
messages.success(self.request, f'You have successfully casted {vote_count} vote.')
return super().form_valid(form)
0
Abdul Giwa
7 अक्टूबर 2021, 09:39
2
पहली नजर में, यह एक ऐसा दृष्टिकोण नहीं है जिसके लिए वर्ग-आधारित दृश्य समकक्ष है। आम तौर पर वर्ग-आधारित विचारों का उपयोग साधारण दृश्यों के लिए किया जाता है जो अन्यथा हर बार बॉयलरप्लेट कोड दोहराते हैं। लेकिन अगर कोई दृश्य वर्ग-आधारित विचारों में से एक में फिट नहीं होता है, तो फ़ंक्शन-आधारित दृश्य का उपयोग करना उचित है।
– Willem Van Onsem
7 अक्टूबर 2021, 09:40
मुझे यह बताने के लिए धन्यवाद, अब मेरी समस्या यह है कि मेरे पास एक वर्ग आधारित विवरण है जिसमें मुझे भुगतान विधि जोड़ने की आवश्यकता है, भुगतान कार्यक्षमता के लिए वापस एफबीवी में परिवर्तित करना मुश्किल होगा, अगर यह ठीक है तो मैं अपना प्रश्न संपादित करूंगा।
– Abdul Giwa
8 अक्टूबर 2021, 12:01
1 उत्तर
सबसे बढ़िया उत्तर
जैसा कि नीचे दिखाया गया है, ऊपर दिए गए वर्ग आधारित दृश्य को फ़ंक्शन आधारित दृश्य में परिवर्तित किया जा सकता है।
def contestant_detail_view(request, pk):
get_object_or_404(Contestant, pk=pk)
form = VoteForm()
context = {'contestants': get_object_or_404(Contestant, pk=pk),
'vote_contestant': Contestant.objects.get(pk=pk),
'form': form}
if request.method == 'POST':
form = VoteForm(request.POST)
if form.is_valid():
con = Contestant.objects.get(pk=pk)
...
con.save()
else:
form = VoteForm()
return render(request, 'contest/contestant_detail.html', context)
0
Abdul Giwa
12 अक्टूबर 2021, 09:42
संबंधित सवाल
नए सवाल
django
Django एक ओपन-सोर्स सर्वर-साइड वेब एप्लीकेशन फ्रेमवर्क है जिसे पायथन में लिखा गया है। यह कम कोड, विशेष-अतिरेक पर विशेष ध्यान देने और निहित से अधिक स्पष्ट होने के साथ जटिल डेटा-संचालित वेबसाइटों और वेब एप्लिकेशन बनाने के लिए आवश्यक प्रयास को कम करने के लिए डिज़ाइन किया गया है।