Django 将链接用作不带javascript的表单字段

Django 将链接用作不带javascript的表单字段,django,forms,form-submit,Django,Forms,Form Submit,在django 1.3中,我几乎完成了搜索引擎的开发。我的应用程序左侧有一些过滤器 我想做的是将这些过滤器显示为链接(而不是单选按钮/选择框/复选框),每当用户单击其中一个链接时,表单就会重新提交,并提交过滤器的值(可能会被TextInput小部件抓取) 基本上,类似于左侧过滤,但没有javascript(因此即使是“非js用户”也可以使用我的网站) 可能吗?怎么用?还是为此我必须使用javascripts 提前谢谢大家 为什么不直接使用GET查询参数 想象一下: 用户搜索“熊”,URL变为:

在django 1.3中,我几乎完成了搜索引擎的开发。我的应用程序左侧有一些过滤器

我想做的是将这些过滤器显示为链接(而不是单选按钮/选择框/复选框),每当用户单击其中一个链接时,表单就会重新提交,并提交过滤器的值(可能会被TextInput小部件抓取)

基本上,类似于左侧过滤,但没有javascript(因此即使是“非js用户”也可以使用我的网站)

可能吗?怎么用?还是为此我必须使用javascripts


提前谢谢大家

为什么不直接使用GET查询参数

想象一下:

  • 用户搜索“熊”,URL变为:/search/?q=bear
  • 查询参数由视图处理(收集与查询参数对应的所有图像)
  • 查询参数以变量形式发送回模板
  • 每个过滤器链接都附带有查询参数及其自身的特定参数,因此中等大小图像的过滤器链接变为/search/?q=bear&size=medium
  • 单击该过滤器链接后,您的视图将在其请求中获得一个
    q
    和一个
    size
  • 无限重复(例如/搜索/?q=熊和大小=中等和表情=微笑和颜色=黑白&活动=跳舞)
我仍在学习url处理。。。我不能使用GET并使用像/bear/medium/smilling/dancing/?这样的URL格式吗?我想您可以这样做,但查询参数的主要优点是它们是键值对(例如size=medium),而在URL格式中,您必须非常小心地检索每个筛选器选项的正确值。例如,如果有人在寻找一张大小不一的微笑着跳舞的熊的照片,你会怎么做<代码>/熊/微笑/跳舞?您如何知道“微笑”应用于“表情”过滤器而不是“大小”过滤器?另一方面,您可以执行如下操作:/bear/size/medium/expression/smilling/activity/dancing。在URL配置中,您必须编写一个正则表达式,该表达式接受任意数量的/parameter/value字符串,并将它们转换为键值对。这意味着要做很多额外的工作和测试,我不确定我是否看到了其中的附加值。在django中,您可以配置url调度程序,根据url的顺序和编号从url获取值。因此,如果我配置了两个URL///和///我都可以使用/bear/medium/和/bear/medium/dance/,并且确切地知道我在哪里以及我得到了什么,你确实可以,我只是担心(在你的情况下可能不必要)扩展性。当您从顺序派生密钥名称时(例如,第一个参数是图像大小),如果添加过滤器,以及如果用户不根据图像大小进行过滤,会发生什么情况?那么,您如何知道/熊/舞蹈中的舞蹈与图像大小无关?老实说,键/值对是一种更适合未来的策略(这可能就是为什么您使用的Google示例的URL中也充满了查询参数)。