繁体   English   中英

仅当selectbox具有特定值时,django admin显示字段

[英]django admin show field only if selectbox has a particular value

models.py

class FixedIncome(Asset):
   isin = models.CharField(max_length=6, blank=False)
   coupon = models.DecimalField(max_digits=7, decimal_places=4, help_text="Percent")
   payment_frequency = models.ForeignKey(PaymentFrequency)
   months = models.ManyToManyField(Month, blank = False, verbose_name = "Payment months")
   duration = models.DecimalField(max_digits=4, decimal_places=2, default='0')
   maturity_date = models.DateTimeField(default=datetime.now, blank=False)

   class Meta:
      verbose_name_plural = "Fixed Income"

我想让django管理员仅在选择月份(数字1到12,selectbox)时显示maturity_date属性。 我已经读过一些关于js的东西,但是我做不到:(

我解决了使用jquery并在ModelAdmin上添加Media类的问题

admin.py

class FixedIncomeAdmin(admin.ModelAdmin):
model = FixedIncome
can_delete = False
list_display = ['name', 'country', 'industry', 'isin', 'coupon', 'payment_frequency']
list_filter = ['name', 'isin', 'country', 'industry']
search_fields = ['name', 'isin', 'country', 'industry']

class Media:
    js = ('/static/admin/js/assets_admin.js',)

assets_admin.js

django.jQuery('#id_payment_frequency').change(function(){
if(django.jQuery("#id_payment_frequency option:selected").text() == 0)
    {
        django.jQuery(".form-row.field-months").hide();
    }else
    {
        django.jQuery(".form-row.field-months").show();
    }
});

如果“ payment_frequency”(0到12)的选择框的值为0,则月份隐藏在表单中

希望对某人有所帮助! :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM