Skip to main content
 首页 » 编程设计

python之Django admin之删除自引用字段的 "add another"按钮

2024年10月24日41birdshome

我有一个 Django 项目,其中包含一个带有可选自引用 ForeignKey 字段的模型类。部分片段:

class Site(models.model): 
    name = models.CharField(max_length=100) 
    parent_site = models.ForeignKey('self', null=True, blank=True) 

我正在使用 Django 管理站点创建新对象。对于此类的管理表单,我想禁用 parent_site 字段旁边的“Add another...”按钮(即,当您创建新网站时,您无法打开弹出窗口以创建另一个新站点作为父站点)。

我无法从用户那里删除 has_add_permission,因为他们需要它在当前添加 View 中。我不介意从添加和更改 View 中删除该函数,但将删除限制在添加 View 中会有所帮助。

我一直无法弄清楚如何使用内联字段类、formfield_for_foreignkey 或自定义 ModelForm 来实现这一点。谁有比在自定义表单模板上使用 JavaScript 更优雅的解决方案?

请您参考如下方法:

没有 css hacks 添加到管理类:

max_num=0 

或者在 admin.py 中尝试这个(对于旧的 django 版本):

class MODEL_ADMIN(admin.ModelAdmin): 
    class Media: 
        css = {'all': ('css/no-addanother-button.css',)}