Конвертировать FBV в CBV

Я пытаюсь изменить все мои функциональные представления на представления, основанные на классах, мне это удалось, за исключением этого представления, это детальное представление, которое содержит платежный шлюз paystack. Любая помощь будет очень признательна.

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)

Представление на основе классов, описанное выше, может быть преобразовано в представление на основе функций, как показано ниже.

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)
Вернуться на верх