gpt4 book ai didi

python - 使用 Python 条件和 Django 返回 DRY

转载 作者:行者123 更新时间:2023-11-28 23:04:50 25 4
gpt4 key购买 nike

我要分享的是我项目中的一个常见模式。有些案例比其他案例更长,但模式或多或少是相同的,我想知道如何才能更干。

if status == 'ACTIVE' and p.result != "0":

messages.add_message(request, messages.ERROR,
_('Active Message... bla bla bla'))

return HttpResponseRedirect(reverse('billing_update'))

if status == 'TOO MANY FAILURES':

messages.add_message(request, messages.ERROR,
_('Failed. Foooobarrrrr'))

return HttpResponseRedirect(reverse('billing_update'))

if status == 'DEACTIVATED BY MERCHANT':

messages.add_message(request, messages.ERROR,
_('Deactivated derpa derp'))

return HttpResponseRedirect(reverse('billing_update'))

这里唯一发生的事情是根据状态设置消息。必须有一种方法只调用返回一次,甚至可以收紧条件。

想法?

最佳答案

它是否符合以下内容:

lib 模块

def add_error_message(request, status, result=0):
if status == 'ACTIVE' and not result:
msg = 'Active Message... bla bla bla'
elif status == 'TOO MANY FAILURES':
msg = 'Failed. Foooobarrrrr'
elif status == 'DEACTIVATED BY MERCHANT':
msg = 'Deactivated derpa derp'
messages.add_message(request, messages.ERROR, _(msg))

如果不是'p.result'条件,字典会好得多:

MESSAGES = {
'ACTIVE': 'Active Message... bla bla bla',
'TOO MANY FAILURES': 'Failed. Foooobarrrrr',
'DEACTIVATED BY MERCHANT': 'Deactivated derpa derp',
}
def add_error_message(request, status):
try:
messages.add_message(request, messages.ERROR, _(MESSAGES[status]))
except KeyError:
pass

查看模块

from lib import add_error_message

def your_view(request, *args, **kwargs):
# ...
add_error_message(request, status, p.result if p else 0)
return HttpResponseRedirect(reverse('billing_update'))

关于python - 使用 Python 条件和 Django 返回 DRY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7003436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com