如何筛选所有选定的选项?

2024-03-29 07:07:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下5个下拉菜单选项:

<select name="image_style">
<select name="image_background">
<select name="image_activity">
<select name="image_merchandise">
<select name="image_type">

我要筛选所有选中的。我试试这个:

image_background = self.request.get("image_background")
image_activity = self.request.get("image_activity")
image_merchandise = self.request.get("image_merchandise")
image_type = self.request.get("image_type")

items = Image.all()

if image_style != "None":
    items.filter("image_tags =", image_style)
elif image_background != "None":
    items.filter("image_tags =", image_background)
elif image_activity != "None":
    items.filter("image_tags =", image_activity)
elif image_merchandise != "None":
    items.filter("image_tags =", image_merchandise)
elif image_type != "None":
    items.filter("image_tags =", image_type)
else:
    self.response.out.write(""" select tags to sort images""")

for item in items:                               
    self.response.out.write("""
    <a href="%s"><image src="%s" height="110"> </a>  """ % 
    (item.image_url, item.image_source_url))

但是在这种情况下,如果image_style不是"None",其他过滤器将不会执行。我该如何表述它,以便执行所有选择。谢谢。你知道吗


Tags: nameimageselfnonegetstylerequesttype
1条回答
网友
1楼 · 发布于 2024-03-29 07:07:44

建立一个包含所有选项的列表tags,过滤掉所有未选择的选项(参见lambda),并检查结果列表是否为空。你知道吗

selects = filter(lambda x: x != "None", 
              [image_style, image_background, image_activity,
               image_merchandise, image_type]
          )

if selects:
    for choice in selects:
        items.filter("image_tags =", choice)
else:
    self.response.out.write(""" select tags to sort images""")

相关问题 更多 >