- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 django 中使用 jquery 显示相关的下拉值。我的第一个下拉列表有 python、ruby 和 php 等语言。第二个下拉列表包含与语言相关的框架。对于 python,框架有 django、pylons、grok。对于 ruby,框架是 Rails、Cuba。对于php,框架是cakephp、codeignator...我写了3个表,分别命名为语言、框架和网站。
模型.py
class languages(models.Model):
lname=models.CharField(max_length=10)
def __unicode__(self):
return self.lname
class framework(models.Model):
fname=models.CharField(max_length=25)
lang=models.ForeignKey(languages)
def __unicode__(self):
return self.fname
class website(models.Model):
wname=models.CharField(max_length=30)
framewrk=models.ForeignKey(framework)
def __unicode__(self):
return self.wname
View .py
def lang_fun(request):
if request.method=='POST':
l=request.POST.get('l1')
languages(lname=l).save()
return HttpResponseRedirect('/frame_fun')
else:
return render(request,"languages.html")
def frame_fun(request):
if request.method=='POST':
la=request.POST.get('drop1')
f=request.POST.get('f1')
framework(lang_id=la,fname=f).save()
return HttpResponseRedirect('/web_fun')
else:
stl=languages.objects.all()
return render(request,"framework.html",{'stl':stl})
def web_fun(request):
if request.method=='POST':
fr=request.POST.get('drop2')
w=request.POST.get('w1')
website(framewrk_id=fr,wname=w).save()
return HttpResponseRedirect('/display')
else:
stl=framework.objects.all()
return render(request,"website.html",{'stl':stl})
def display(request):
s1=languages.objects.all()
s=website.objects.all()
return render(request,"display.html",{'s':s,'s1':s1})
显示.html
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#drop1').on('change', function() {
$('#text1').val($('#drop1').val());
});
});
</script>
</head>
<body>
<table id="tab1" border="1px">
<tr><th>language</th><th>framework</th><th>website</th></tr>
{% for i in s %}
<tr><td> {{i.framewrk.lang.lname}}</td>
<td>{{i.framewrk.fname}}</td>
<td>{{i.wname}}</td>
</tr>
{% endfor %}
</table>
<select id="drop1">
{% for i in s %}
<option value={{i.framewrk.fname}}>{{i.framewrk.lang.lname}}</option>
{% endfor %}
<input type="text" id="text1">
</body>
</html>
在我的views.py中,我添加了语言的框架和网站。在我的display.html中,我显示了相应语言的框架和网站。我正在访问下拉列表中的语言,语言的重复取决于它包含的框架的数量。我想要它而不重复。我可以在文本框中一一显示语言的框架。我希望它在 dropdon 中。当我选择 python 时,我希望 python 的框架显示在另一个下拉列表中。你能帮我如何编写 html 和 jquery 吗?提前致谢。正在学习Python。所以请指导我。
最佳答案
这是相对简单的任务,但我想说,您尝试使用自己的工具做太多事情,而不是使用 django 提供的最佳方法。将所有这些作为示例写出来需要花费太多时间,因此我将概述为实现相同目标我会做的事情。
1) 使用 django 表单来显示表单并保存/处理模型数据。您可以为不同的选择框创建具有不同字段的单个表单。您将需要条件字段,因为一个字段中的选择取决于另一字段中的选择。请参阅这篇关于使用条件形式的文章:( link )。在您的情况下,您需要执行一些操作,例如在表单 init 方法中访问表单绑定(bind)数据并从中读取选定的语言/框架值,然后根据这些值设置框架/网站选择。
2) 字段更改事件是在发生更改时刷新表单内容的好方法。但不要发布该表格。您可以在同一地址上执行 GET 表单。
3) 在 View 中,您可以将 request.POST 或 request.GET 作为初始参数传递给表单类。在这两种情况下,这都将成为表单的绑定(bind)数据 - 您将在表单的 init 方法中使用该数据来确定可用的选择。
4)如果是request.GET,只需再次返回相同的表单即可。您可以返回刚刚渲染的表单元素,并且在网页上您可以使用该渲染的 html 来交换现有的表单。不要忘记使用 jquery.live 方法将“change”事件绑定(bind)到表单字段,否则交换表单后事件将无法工作。
5) 仅在实际发布表单时才使用 POST。
这会给你带来什么:
1) 您将仅使用一个 View 而不是 4 个。所有这些都可以在一个相对简单的 View 中完成。
2)与字段值/选择相关的所有逻辑都将位于表单类中,在我看来,这是最好的地方。
3)您将学习使用 OOP,如果您打算坚持使用 Django,这将使您受益匪浅。
4)作为旁注,你应该看看这个:link
艾伦
关于jquery - 使用jquery列出django相关的下拉值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19922075/
如何从单个输入字段中的逗号分隔值输出列表(无论是作为单个值还是作为数组)? 示例 用户在文本输入字段中输入以下内容:Steve、Bruce、Matt、Natasha、Peter 结果: 史蒂夫 布鲁斯
如何列出与 Jena 中的实例关联的所有对象属性? 例如:Person 有一个名为“hasVehicle”的对象属性,它与类 Vehicle 相关联 最佳答案 合适的 Jena 方法是 OntClas
如何列出与 Jena 中的实例关联的所有对象属性? 例如:Person 有一个名为“hasVehicle”的对象属性,它与类 Vehicle 相关联 最佳答案 合适的 Jena 方法是 OntClas
我知道 Python 是一种动态语言,但下面的代码让我很困扰。 我有下面的简单程序,它有一些辅助函数来包装命令执行。 EventLoaderToVerticaHelper 是一个有两个方法的辅助类,所
我有以下代码 public void saveProjects(List proj) throws DatabaseException { for (Project listItems: pr
我有一个列表,其中元素是: struct element { double priority; int value;
我看到对于 pull 请求的提交,根据文档最大限制为 250:List commits on a Pull Request如果 pull 请求超过 250 次提交,则建议使用另一个端点:List Co
我是 django 的新手,我想列出一个 django 项目的应用程序,例如: FeinCMS 我知道 startapp 会为应用程序创建目录结构。请问有没有函数或者文件可以获取应用列表。 以Fein
你能列出所有在 Hibernate 框架中使用的设计模式吗? 我了解一些设计模式,如 DAO、ORM 等。 如果可能的话,一些例子。 最佳答案 Hibernate 中使用的设计模式: 领域模型模式——
我正在尝试在终端中使用 psql 来查找数据库中所有可为空的列。如果我使用 select * from information_schema.check_constraints; 我得到如下信息 c
您可以使用以下步骤列出 WSO2 碳基产品使用的所有管理服务。 使用 OSGI 控制台启动服务器。转至 /bin 使用命令 shell 。 i) 例如:Linux sh wso2server.s
我想列出数据库中的所有表名。我的应用程序必须独立于 DBMS。不同的 DBMS 有不同的命令来列出表,例如: PstgreSQL: SELECT * FROM pg_catalog.pg_table
主要是为了我自己的启发,我试图列出当前 Emacs session 中加载的所有全局变量。我正在考虑做的是生成一个包含所有列出的功能的 HTML 文件。当然,定义函数、var 等的文件也很有用。 em
我如何定义 lists:append具有列表理解功能? 我想要类似的东西 1> append([[1, 2, 3], [a, b], [4, 5, 6]]). [1,2,3,a,b,4,5,6] 最佳
使用以下 Powershell 代码段,我可以获取当前用户的组成员名称: $groups = [System.Security.Principal.WindowsIdentity]::GetCurre
如何列出 Docker 容器的所有卷?我知道它应该很容易获得,但我找不到方法。 另外,是否可以获取已删除容器的卷并将其删除? 最佳答案 您可以使用 docker ps,获取容器 ID 并写入: $ d
来自微软独库: The "\\.\" prefix will access the Win32 device namespace instead of the Win32 file namespace
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: Finding all Namespaces in an assembly using Reflection (Do
是否有命令行选项可以列出您的 Cucumber 测试套件中的所有标签? 例如,我想要这样的东西: cucumber --show-tags foo.feature 那会给我类似的东西: @ci @de
有没有一种快速的方法来列出为数据库定义的所有实际上没有被任何字段使用的 Firebird 域?我有一个包含许多表和许多域的大型数据库,似乎其中很多不再使用,所以我想是时候进行清理了! 我认为这可以通过
我是一名优秀的程序员,十分优秀!