【问题标题】:Django stacked inline admin questionDjango堆叠内联管理问题
【发布时间】:2011-06-25 15:13:04
【问题描述】:

使用 Django 1.2 我有一个堆叠的内联管理员,上面有多对多字段。我需要根据内联存在的父对象来限制多对多的选择。例如,我在Widget 管理员上有一个WidgetPart 内联。当我编辑现有的Widget 时,我需要根据与正在编辑的Wiget 相关的逻辑来限制WidgetPart.foo 的选择。我似乎无法使用formfield_for_manytomany 执行此操作,因为它不仅没有提供任何obj 相关信息,而且它的request 参数似乎总是在内联时使用None。还有其他方法吗?

【问题讨论】:

    标签: django django-admin django-orm


    【解决方案1】:

    你可以在你的 InlineAdmin 类上做这样的事情:

    def formfield_for_manytomany(self, db_field, request, **kwargs):
      if db_field.name == "foo":
        kwargs["queryset"] = SomeModel.objects.filter(something=something)
        return db_field.formfield(**kwargs)
    
      return super(YourModel, self).formfield_for_manytomany(db_field, request, **kwargs)
    

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 2015-06-21
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多