Форум сайта python.su
Ниже кусок из довольно объёмного кода, который приходится дублировать из-за того, что я не понимаю, как можно сделать включение одного из параметров необязательным
if profile_type == 'D': q_table = UserDownloads.objects.filter(date__lt = end_day, username__in = userlist) ... elif profile_type == 'A': ... else: q_table = UserDownloads.objects.filter(date__lt = end_day)
Отредактировано whitehat (Март 27, 2012 21:47:02)
Офлайн
если это django, то можно так:
q_table = UserDownloads.objects.filter(date__lt = end_day) if profile_type == 'D': q_table = q_table.filter(username__in = userlist)
filters = dict(date__lt=end_day) if profile_type == 'D': filters['username__in'] = userlist q_table = UserDownloads.objects.filter(**filters)
Офлайн
q_table = UserDownloads.objects.filter(date__lt = end_day, **( { "username__in": userlist } if profile_type == 'D' else {} ) )
Офлайн
Спасибо большое! :D
Офлайн