Как предотвратить ошибку атрибута no 'get' при проверке формы? - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть класс в views.py, и когда я запускаю код, я получаю следующую ошибку:

объект не имеет атрибута 'get'

Кто-нибудь может помочь?

class currencyconvertGBP():
    def __init__(self, *args, **kwargs):
        login_id = '###############'
        api_key = '####-####-####-####'
        environment = currencycloud.Config.ENV_DEMO
        client = currencycloud.Client(login_id, api_key, environment)

    def GBPconvert(request):

        if request.method == "POST":
            form = Convert_Form_GBP(request.POST)

            if form.is_valid():
                sell_currency = form.cleaned_data.get('sell_currency')
                buy_currency = form.cleaned_data.get('buy_currency')
                amount = form.cleaned_data.get('amount')                    
                form = Convert_Form_GBP()
                form.save()
                print(sell_currency)
                print(buy_currency)
                print(amount)

попробовать: rate = client.rates.detailed (buy_currency = 'EUR', sell_currency = 'GBP', fixed_side = 'buy', сумма = сумма) print («Чтобы купить {0} {1}, вам необходимо продать {2} {3}. Эта цитата будет действительна до {4}». формат (rate.client_buy_amount,

                                                                                                        rate.client_buy_currency,

                                                                                                        rate.client_sell_amount,

                                                                                                        rate.client_sell_currency,

                                                                                                        rate.settlement_cut_off_time))
            except ApiError as e:
                print("Detail Quote encountered an error: {0} (HTTP code {1})".format(e.code, e.status_code))

            return render(request, 'main/conversion.html', {'content': [("To buy {0} {1} you will need to sell {2} {3}. This quote will be valid until {4}".format(rate.client_buy_amount, rate.client_buy_currency, rate.client_sell_amount, rate.client_sell_currency, rate.settlement_cut_off_time))]})
        #return render(request, 'main/form.html', context={'currencyconvertform': form})

    else:
        form = Convert_Form_GBP()           
        return render(request, 'main/form.html', context={'currencyconvertform': form})

Шаблон URL: путь ("account / currencyconvertGBP /", views.currencyconvertGBP, name = "currencyconvertGBP"),

После того, как ответ API был возвращен, я подумал, что могу получить объекты из первого класса и повторно передать API, используя второй класс:

класс currencyconvertedGBP (currencyconvertGBP): def init (self, * args, ** kwargs):
login_id = '############' api_key = '##############' environment = currencycloud.Config.ENV_DEMO client = currencycloud.Client (login_id, api_key, environment)

def GBPconverted(request):

    try:
        conversion = client.conversions.create(buy_currency='EUR', sell_currency='GBP', amount=amount, fixed_side='buy', reason='Top up Euros balance', term_agreement='true')
        print("Conversion Id {0} for {1} {2} created successfully".format(conversion.id, conversion.client_buy_amount, conversion.buy_currency))        


    except ApiError as e:
        print("Conversion encountered an error: {0} (HTTP code {1})".format(e.code, e.status_code))
    return redirect("/convert_success")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...