【问题标题】:Django admin foreign key field filteringDjango admin 外键字段过滤
【发布时间】:2014-12-07 13:05:22
【问题描述】:

我有一个客户端模型,它有一个国家模型的外键字段。

所以在 Django admin 中,当我创建一个客户端并选择该客户端所属的国家/地区时。但问题是选择列表太长(这个星球上的国家太多)。有时需要很长时间才能得到我需要的那个。

所以我想知道 djano admin 中是否还有其他提供 select-input-combo 小部件的小部件。 当我输入输入内容时,它会过滤掉正确的内容供我选择。

希望你能理解我在这里的需要。

【问题讨论】:

    标签: django widget django-admin


    【解决方案1】:

    从 Django 2.0 开始,就有了autocomplete_fields。来自documentation:

    autocomplete_fields 是您希望更改为 Select2 自动完成输入的 ForeignKey 和/或 ManyToManyField 字段的列表。

    和

    Select2 输入看起来类似于默认输入,但带有一个异步加载选项的搜索功能。如果相关模型有很多实例,这会更快、更友好。

    请注意,您需要在相关对象的 ModelAdmin 中定义 search_fields,因为它被小部件使用。

    【讨论】:

      【解决方案2】:

      你看到raw_id_fields了吗?

      你会在 admin.py 中做类似的事情:

      class ClientAdmin(admin.ModelAdmin):
          raw_id_fields = ("country",)
      admin.site.register(Client, ClientAdmin)
      

      然后选择小部件将变为:

      【讨论】:

      • 还不错,但不是完美的小部件,我想我必须自己制作。你知道如何显示其他字段值而不是简单的 ID 号吗?
      • @castiel 你的国外模特有__unicode__吗?
      • 注意:“放大镜”链接会弹出一个带有过滤框的选择窗口。
      猜你喜欢
      • 2012-04-28
      • 2011-03-14
      • 2014-08-24
      • 2019-02-17
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      相关资源
      最近更新 更多