模型.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 admin 显示 maturity_date 属性,前提是选择了月份(数字 1 到 12,选择框)。我读过一些关于 js 的东西,但我做不到 :(
请您参考如下方法:
我解决了使用 jquery 并在我的 ModelAdmin 上添加一个类 Media
管理员.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,则月份隐藏在表单中
希望对某人有所帮助! :)
