Django管理界面:如何根据用户选择显示不同模型?

1 投票
2 回答
953 浏览
提问于 2025-04-16 15:10

我正在用Django创建一个投票应用。管理员用户的操作流程如下:

  1. 管理员点击“添加问题”,这时会出现一个简单的页面,上面有一个下拉列表,里面有三种问题类型(对/错、多选、单选)。基本上,每种类型的问题都会有三种问题模型

  2. 根据管理员在下拉列表中的选择,系统会显示相应的模型,管理员可以在这个模型中输入不同字段的值

就这么简单!看起来很基础,但作为Django的新手,我找不到解决办法。任何帮助都非常感谢。

谢谢!

2 个回答

1

这其实不是你可以指望在Django中自带的功能。

你可以利用Django自带的功能,比如CRUD接口(创建、读取、更新、删除),然后设置一个起始页面,里面有一个下拉列表,选择后可以通过一些JavaScript跳转到相应的模型。

<script>
// I'm using jQuery since I can type it as fast as pseudo code...
$(function() {
    $("select").change(function() {
        window.location = $(this).val();
    })
})
</script>

<select>
    <option value="{% url admin:myapp_mymodel1_add %}">Model 1</option>
    <option value="{% url admin:myapp_mymodel2_add %}">Model 2</option>
    <option value="{% url admin:myapp_mymodel3_add %}">Model 3</option>
</select>
0

你真的必须用管理员界面吗?我觉得如果你想创建一个涉及处理多个表单数据的自定义工作流程,使用一系列常见的表单会更好。

你可以用Django的表单向导把你的表单连接起来。

撰写回答