我试图创建的是一个资源站点。基本上,您可以通过链接添加诸如书籍和视频等资源。现在,对于满足各种资源需求的任何资源站点,您都需要对它们进行标记,以便了解您正在使用的资源类型。
例如,如果你在像化学这样的东西上做了笔记,或者在一次关于"Django“的演讲中做了重点说明,那么这些就是文本文档。因此,您需要将它们放在TEXT标记中。
所以,当你为这类事情做表单时,你会使用什么表单字段?例如,通过膝跳方法是简单地创建一个文本区域字段,然后通过逗号分隔不同的标记。现在,这很容易出现很多问题,我只想知道解决这个问题的最佳方法是什么?基本上,验证数据输入的简单方法是什么?forms.ChoiceField是解决问题的最佳方法,还是有其他更好的方法?
发布于 2013-08-09 13:33:00
https://www.djangopackages.com/grids/g/tagging/是你最好的选择,特别是https://github.com/alex/django-taggit。如果您想运行自己的标记系统,请查看源代码中的一些想法。
编辑:在表单中显示这一点的最简单方法是使用ModelMultipleChoiceField。这允许您为单个资源选择多个标记,并处理服务器端验证和到实际Tag实例的转换。然而,我想大多数人都会同意这个选项看起来很可怕,而且如果有大量可能的标签,这肯定是不对用户友好的。
如果使用jQUery,另一种选择是使用select2。这是我个人在类似情况下使用的,它很好地处理了大量可能的标签。Django_select2是jQuery的Select2插件的一个薄包装器,带有一些附加功能(最显著的是AutoView和AutoModelSelect2Field)。这在文本字段和选择列表之间提供了一个混合,允许您搜索所有标记并轻松地选择多个标记。有关您可以实现什么的示例,请参见http://ivaynberg.github.io/select2/。
https://stackoverflow.com/questions/18147659
复制相似问题