【问题标题】:How to add the green plus button on a models.ForeignKey field?如何在 models.ForeignKey 字段上添加绿色加号按钮?
【发布时间】:2013-04-19 13:09:12
【问题描述】:

我的 models.py 中有这样一个字段:

class Animal(models.Model):
    master = models.ForeignKey('masters.Master', blank=True, null=True, db_index=True, related_name='master_of')

但在 Django admin 中,右侧没有绿色的小“+”按钮,因此您无法从那里添加新的 master,这不是很实用。

所以我希望绿色的“+”按钮出现在“主”字段上,以便能够直接从那里添加主。

我该怎么做?

【问题讨论】:

  • 一定有更简单的方法可以做到这一点,因为在它工作之前,但我改变了一些东西,现在我才意识到加号按钮消失了。
  • 加号+被添加到所有外键,但它基于用户对该模型的权限,你确定你有正确的权限吗?确保相关模型也为管理员注册。
  • 是的,我可以从管理员的相应表单中添加新的主人。

标签: python django foreign-keys admin


【解决方案1】:

您的主模型是否已在您的 admin.py 中注册?

如果没有,Django 将不会处理它。

【讨论】:

  • 确定已注册并处理完毕。
  • 您能否将您的 admin.py 粘贴到“masters”应用程序中?
  • 实际上我只是意识到我使用了一个 forms.ModelChoiceField 作为字段大师,当我把它拿走时它就可以工作了!但我需要使用它。那么如何让forms.ModelChoiceField使用绿色的“+”按钮呢?
  • 应该可以通过扩展默认小部件或修改模板来实现。另一个(更简洁的)解决方案是保留表单的默认字段定义/小部件,并在您的 admin.py 中覆盖此 FK 的查询集。见:djangosnippets.org/snippets/1558/#c4674
  • 仔细检查模型是否已注册
猜你喜欢
  • 1970-01-01
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-29
相关资源
最近更新 更多