在 django 中单击管理员的选择字段后如何隐藏或显示模型字段

Posted

技术标签:

【中文标题】在 django 中单击管理员的选择字段后如何隐藏或显示模型字段【英文标题】:how to hide or show fields of model after clicked on choice field from admin in django 【发布时间】:2016-05-19 06:54:23 【问题描述】:
class BannerAddPage(models.Model):
    BOOL_CHOICES = ((True, 'Live'), (False, 'Pause'))
    TYPE_CHOICES = (('text', 'text'), ('image', 'image'))
    category=models.ForeignKey(Category,blank=True)
    client=models.ForeignKey(Client)
    ad_type=models.CharField(choices=TYPE_CHOICES,default=True)
    ad_name=models.CharField(max_length=800,null=True,blank=True)
    ad_title=models.CharField(max_length=800,null=True,blank=True)
    ad_url1=models.URLField(max_length=800,blank=True,null=True)
    ad_banner2=models.ImageField(upload_to=upload_to1,blank=True,null=True)

See the image here

我想在点击ad_type(choice) 字段后隐藏一些字段。

【问题讨论】:

【参考方案1】:

最好的方法是使用表单媒体添加一个外部 javascript 文件,该文件将监听字段 ad_type 的更改事件并执行您需要的操作。

在这种情况下,您将需要很少的 python 和更多的 js,但我认为这是干净的方式。

要添加外部js文件使用class Media,这个answer到另一个问题显示一个实际的例子。

除了编写 js 代码的乐趣之外,您还可以使用 django admin 中已经包含的 jQuery。

希望对你有帮助

【讨论】:

以上是关于在 django 中单击管理员的选择字段后如何隐藏或显示模型字段的主要内容,如果未能解决你的问题,请参考以下文章

Django admin - 如何在用户编辑中隐藏一些字段?

根据另一个字段中的选择显示/隐藏 django 管理表单字段

Django Admin显示/隐藏字段如果在下拉菜单中选择了特定值

如何根据 Django 下拉菜单中的选择显示和隐藏表单字段

如何在django-admin中隐藏特定记录的字段?

如何使用 Jquery 更改按钮单击时的 django 外键对象文本选择字段?