В Python вы можете достичь этого, выполнив следующее, предполагая, что params
является dict
:
state = params.get('state')
country = params.get('country')
region = 'US' if (state and country) else None
Метод dict.get(key)
вернет значение, связанное с ключом, который былпрошло.Если такого ключа не существует, он возвращает None
.
. Если вам нужно заменить пустые значения фактическими пустыми строками, вы можете сделать это вместо этого:
state = params.get('state', '')
country = params.get('country', '')
region = 'US' if (state and country) else ''
В целом, "Pythonic "способ сделать это состоит в том, чтобы использовать форму:
class Address(Model):
state = ...
country = ...
region = ...
AddressForm = modelform_factory(Address)
#inside view
def view(request):
if request.method == 'POST':
form = AddressForm(request.POST, request.FILES)
if form.is_valid():
address = form.save(commit=False)
address.region = 'US' if address.state and address.country
address.save()
Создав собственный класс AddressForm, вы можете выполнить эту обработку автоматически на экземпляре перед его сохранением.Это точная роль классов Form.