在我的自定义表情符号键盘(Django web app)中显示表情符号的随机子集

2024-06-18 04:00:50 发布

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

我有52个表情符号的列表,但我只想让10个随机出现在表情符号备忘单/键盘中。在

我要做的是:

django视图向我的模板传递一个由10个介于1和52之间的随机数组成的列表,如下所示:context["random"] = random.sample(xrange(1,52),10)

另外,在上下文变量context["emojis"]中还传递了52个emojis的列表。此列表如下所示:

( [':)', ':-)', ':=)'], [':(', ':-(', ':=('], [';)', ';-)', ';=)', '(wink)'], [';(', ';-(', ';=(', '(cry)'], [':*', ':-*', ':=*', '(kiss)'], [':|', ':-|', ':=|', '(speechless)'], [':-?', ':?', ':=?', '(think)'], ['|(', '|-(', '|=(', '(dull)'], ['|-)', 'I-)', 'I=)', '(snooze)'], ['])', ']=)', '(grin)'], [':$', ':-$', ':=$', '(blush)'], [':D', ':-D', ':=D', ':d', ':-d', ':=d', '(laugh)'], [':O', ':-O', ':=O', ':o', ':-o', ':=o', '(surprised)'], ['8)', '8-)', '8=)', 'B)', 'B-)', 'B=)', '(cool)'], ['8-|', 'B-|', '8|', 'B|', '8=|', 'B=|', '(nerd)'])

这还不全是52个表情符号,但你明白了。{cd4>{I}见模板中的打印。这个结果本身就是一个列表,因为亲吻表情符号可以通过所有这些符号来制作。在

总而言之,在这52个子列表中,我希望在我的模板中出现10个。此外,我只想打印每个随机选择的子列表中的第一项。在

下面是我正在尝试的:

{% for index in random %}
{{ emojis.index.0 }}
{% endfor %}

什么也没出现。在我的头脑中,我认为这将通过emojis.index得到10个随机子列表,.0将确保它只返回第一个项。在


Tags: sampledjango视图模板列表indexcontextrandom
1条回答
网友
1楼 · 发布于 2024-06-18 04:00:50

This这就是为什么这行不通。TLDR:动态索引在Django中不起作用。你可以做{{ foo.5 }},但你不能做{{ foo.{{bar}} }}

但是,在传递随机列表之前,先在上下文中构造随机列表(假设emojis是一个包含所有表情符号的变量):

random_indexes = random.sample(xrange(1,52),10) context["random_emojis"] = [emojis[ind] for ind in random_indexes]

然后在模板中:

{% for emoji in random_emojis %} {{ emoji.0 }} {% endfor %}

相关问题 更多 >