【问题标题】:Adding an item to a django admin object creation form将项目添加到 django 管理对象创建表单
【发布时间】:2015-01-07 00:36:07
【问题描述】:

我有一个 django 模型,NewsItem,它有几个字段,包括日期、文本和外键字段。一个外键字段是:

editor = models.ForeignKey(User, verbose_name="Editor", related_name='editors', 
                           limit_choices_to=_editors)

由于某种原因,外键字段没有显示在 django 管理界面的“添加项目”表单中(http://[hostname]/admin/[app name]/newsitem/add/。但是,所有其他字段都显示。我无法保存任何项目,因为编辑器是必填字段。

我已检查以确保存在满足约束的用户:

>>> User.objects.filter(groups__name__iexact='editors')
[<User: testeditor>]

我找不到这些字段不会显示在管理员中的任何原因。我需要在NewsItemAdmin 类中为它们指定一个小部件吗?我需要告诉管理员显示它们吗?如果有,怎么做?

【问题讨论】:

  • 让我们看看你的 _editors 代码。也许它没有返回任何东西。或查看此问题以了解其他一些方法:stackoverflow.com/questions/232435/…
  • 糟糕,这是我在第二个块中运行的代码。它返回一个对象。
  • 发布您的 admin.py,_editors。开始取件进行调试。删除limit_choices_to:会发生什么?如果表格出现,我们现在知道它与限制选择有关。虽然我希望一个空的选择,而不是一个完全消失的字段。从 ModelAdmin 中删除部分(甚至不要使用 ModelAdmin.. 直接注册 admin.site.register(MyModel) - 看看会发生什么。如果没有任何 ModelAdmin 自定义它不会出现,则意味着它与字段定义有关本身..等等。

标签: python django django-admin


【解决方案1】:

您应该确保与您一起创建此内容的用户有权更改编辑器。 [捂脸]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多