在我的项目中,用户可以使用任意数量的联系方式'跟他们。例如,一个用户只能定义移动设备,另一个用户可以拥有移动设备,邮件,Skype和其他用户。应该有可能为每个用户设置一种主要的联系方式,所以我创建了如下模型:
class Account(AbstractNamedUser):
....
class Contact(models.Model):
account = models.ForeignKey(Account)
value = models.CharField(max_length=100)
is_default = models.BooleanField(default=False)
在管理员后端我使用admin.TabularInline
,但不幸的是is_default
字段是每个内联表单之间的独立复选框。我想要的是将它们变成单选按钮,当然只有一行'可以是默认的。
我已尝试formfield_overrides
,某些ModelAdmin.form
或widgets = {'is_default':forms.RadioSelect }
,但它们仅适用于单一形式的选择字段。
是否有可能在Django中指示字段is_default
应该被视为内联表单之间的单选按钮?
答案 0 :(得分:0)
是的,我个人经常使用它。
将类属性添加到您的 ModelForm 默认字段:
def __init__(self, *args, **kwargs):
super(FormClassName, self).__init__(*args, **kwargs)
self.fields['default'].widget.attrs['class'] = 'default-img'
使用 JS 或 Jquery 进行操作:
$(document).on("click", '.ElementClass', function () {
$('.ElementClass').prop('checked', false);
$(this).prop('checked', true);
});