代码之家  ›  专栏  ›  技术社区  ›  dar

不同的manytomanyfield小部件

  •  1
  • dar  · 技术社区  · 17 年前

    当选择框中有很多东西时,很难使用默认的django 1.0.2 manytomanyfield小部件(多选)。是否有另一个小部件在文本区域中以逗号分隔ID列表?如果这不可用,我需要做什么来编写一个,并让它显示在modelform.as_p()和管理站点上?

    3 回复  |  直到 17 年前
        1
  •  2
  •   gerdemb    17 年前

    如果没有现成的小部件可以满足您的需要(我认为没有),那么您需要自己编写。不幸的是,django文档没有向您展示如何做到这一点,但是通过查看源代码并不难理解。 forms/widgets.py 复制现有的小部件并修改它。

        2
  •  2
  •   Ricardo Mendonca    17 年前

    我相信在manytomanyfield上设置raw_id_字段实际上会输出一个文本输入小部件,其中包含一个用逗号分隔的ID列表。 您可以在对应的模型窗体的admin.py中覆盖它,并在上面强制使用一个文本区域小部件。

        3
  •  1
  •   Andrea Di Persio    17 年前

    在管理员中您可以使用 水平筛选 和/或 垂直过滤器 :

    class MyModelAdmin(admin.ModelAdmin):
        filter_horizontal = ['many_to_many_field_name']
        filter_horizontal = ['another_many_to_many_field_name']
    

    doc