Как получить доступ к динамически генерируемому кортежу в Python? - PullRequest
0 голосов
/ 23 января 2020

Я создал кортеж для django выбора модели динамически. Варианты выглядят так: [('cash', 'Pay via cash'), ('internet_banking', 'Pay via internet banking'), ('C2P', 'Pay via Credit Card')] Создано динамически, поскольку сгенерированные параметры зависят от некоторых условий. Количество и тип доступных вариантов оплаты зависят от определенных условий.

Теперь я хочу получить доступ к этим динамически генерируемым вариантам по всему коду, например, если выбранный вариант - cash, тогда сделайте это, в противном случае сделайте что-нибудь еще.

Невозможно использовать что-то подобное PAYMENT_METHOD_CHOICES.cash получить ошибку Tuple object has no attribute cash

1 Ответ

0 голосов
/ 23 января 2020

Вы можете получить доступ к элементам кортежей по их индексу. Если вы хотите получить доступ к таким членам, как PAYMENT_METHOD_CHOICES.cash, вы должны создать Enum, как показано ниже:

from enum import Enum

class PAYMENT_METHOD_CHOICES(Enum):

    cash = 'Pay via cash'
    internet_banking = 'Pay via internet banking'
    C2P = 'Pay via Credit Card'

С помощью этого Enum вы можете отметить как ...

if self.payment_method == PAYMENT_METHOD_CHOICES.cash.value:

...