python - 如何比较 django 中不相等的邮政编码列表中的值?

标签 python django

我有两个不相等的列表,我已将其压缩并将其作为上下文从我的 View 中传递。在我的模板中,我有一个多选下拉列表,我想在其中比较值并在下拉列表中显示所选内容。但是我无法做到这一点。 这是我的代码:- 第一个列表:-

university_all_list = Universities.objects.using('cms').all()

第二个列表:-

university_ids_list = []
school_university_mapping = SchoolAdminUniversityMappings.objects.filter(userId=cms_user)
for university_ids in school_university_mapping:
        university_ids_list.append(university_ids.universityId)
print university_ids_list

合并两个列表:-

zip_list = zip(university_all_list, cycle(university_ids_list)) if len(university_all_list) > len(
        university_ids_list) else zip(cycle(university_all_list), university_ids_list)

现在,在模板中使用该 zip_list:-

<div class="col-sm-8 multiselect_container">
                                        <select class="mutisel" id="first_select" multiple="multiple"
                                                value="university_all_list.id"
                                                name="universityId"
                                                id="userName" required>


                                            {% for university,id in zip_list %}

                                                    {% if id == university.id %}

                                                        <option value="{{ university.id }}"
                                                                selected>{{ university.name }}</option>
                                                    {% else %}
                                                        <option value="{{ university.id }}"
                                                        >{{ university.name }}</option>
                                                    {% endif %}

                                            {% endfor %}
                                        </select>
                                        <script>
                                            $("select.mutisel").multipleSelect({
                                                filter: true,
                                                placeholder: "Select",
                                            });
                                        </script>
                                    </div>

但在多选中没有选择任何下拉菜单。

最佳答案

处理不等长度的列表时,您应该使用 itertool izip_longest

Make an iterator that aggregates elements from each of the iterables. If the iterables are of uneven length, missing values are filled-in with fillvalue. Iteration continues until the longest iterable is exhausted.

按照文档中的建议,您需要为缺失的条目设置默认值。

话虽如此,需要对数据库记录使用 zip 或 izip_longest 是最不寻常的。这种情况可以使用 Django ORM 完全支持的联接在数据库级别轻松处理。 UniversitiesSchoolAdminUniversityMappings 之间有什么关系?你明确声明了吗?

关于python - 如何比较 django 中不相等的邮政编码列表中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44341145/

相关文章:

python - numpy.loadtxt "could not convert string to float"

python - Python中生成素数的生成器

django - 编辑 Django 表单中的现有条目

javascript - 在整个文档中格式化整数千位分隔符

python - 获取 ValueError : invalid literal for int() with base 10: '' error and don't know why

python - 如何在 Django 管理面板中列出所有与外键相关的对象?

python - raw_id_fields 不显示带有放大镜按钮的所有字段

python - ExcelWriter 在书写时覆盖工作表

python - 通过css为django模板加载图片

python - 如何设置 QTableView CSS 样式