在 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 管理表单字段