Django-自定义ModelAdmin表单不覆盖默认模型
我定义了一个模型Django-自定义ModelAdmin表单不覆盖默认模型,django,django-models,django-modeladmin,Django,Django Models,Django Modeladmin,我定义了一个模型 class subnet(models.Model): subnet_id = models.AutoField(primary_key=True) subnet_pod = models.ForeignKey(pod, null=True, on_delete=models.SET_NULL, verbose_name='Select Pod') subnet_number = models.IntegerField(verbose_name='VLAN/SVI Number
class subnet(models.Model):
subnet_id = models.AutoField(primary_key=True)
subnet_pod = models.ForeignKey(pod, null=True, on_delete=models.SET_NULL, verbose_name='Select Pod')
subnet_number = models.IntegerField(verbose_name='VLAN/SVI Number')
subnet_description = models.CharField(max_length=10, verbose_name='Subnet Description')
LAYER_CHOICES = (
('Layer2', 'Layer2'),
('Layer3', 'Layer3'),
)
subnet_layer = models.CharField(max_length=50, choices=LAYER_CHOICES,verbose_name='Layer2/3')
subnet_ip = models.CharField(max_length=50, verbose_name='Gateway IP/Mask')
vrf = models.ForeignKey(vrf,blank=True, null=True, on_delete=models.SET_NULL, verbose_name='Select VRF')
class Meta:
verbose_name = 'Subnet'
verbose_name_plural = 'Subnets'
def __str__(self):
return self.subnet_number
我想覆盖子网ip并使用自定义表单向其添加标签和占位符,因此我有:
class subnetForm(forms.ModelForm):
class Meta:
model = subnet
fields = ['subnet_number', 'subnet_description', 'subnet_layer', 'vrf']
widgets = {
'subnet_ip': forms.TextInput(attrs={'placeholder': 'e.g,: x.x.x.x/x'}),
}
但是,占位符不会应用于模型,也不会显示在前端
我还有一个admin.py:
class subnetAdmin(admin.ModelAdmin):
list_display = ('subnet_number','subnet_description','subnet_layer','subnet_ip','vrf')
ordering = ('-subnet_number',)
感谢您的帮助 试试这个
class subnetForm(forms.ModelForm):
subnet_number = <use same model field datatype> forms.CharField(label = 'subnet_number', widget = forms.TextInput(attrs = {'placeholder' : 'subnet number'}))
class Meta:
model = subnet
fields = ['subnet_number', __other_fields__]
类子网表单(forms.ModelForm):
subnet_number=forms.CharField(标签='subnet_number',小部件=forms.TextInput(属性={'placeholder':'subnet number'}))
类元:
模型=子网
字段=[“子网\u编号”、\u其他\u字段\uuuu]
试试这个
class subnetForm(forms.ModelForm):
subnet_number = <use same model field datatype> forms.CharField(label = 'subnet_number', widget = forms.TextInput(attrs = {'placeholder' : 'subnet number'}))
class Meta:
model = subnet
fields = ['subnet_number', __other_fields__]
类子网表单(forms.ModelForm):
subnet_number=forms.CharField(标签='subnet_number',小部件=forms.TextInput(属性={'placeholder':'subnet number'}))
类元:
模型=子网
字段=[“子网\u编号”、\u其他\u字段\uuuu]
这不起作用。需要占位符的字段是subnet\u ip。我试过:class subnetForm(forms.ModelForm):subnet\u ip=forms.CharField(label='subnet\u ip',widget=forms.TextInput(attrs={'placeholder':'Test'}))class Meta:model=subnet fields=['subnet\u ip','subnet\u number','subnet\u description','subnet\u layer','vrf']
这不起作用。需要占位符的字段是subnet\u ip。我试过:class subnetForm(forms.ModelForm):subnet\u ip=forms.CharField(label='subnet\u ip',widget=forms.TextInput(attrs={'placeholder':'Test'}))class Meta:model=subnet fields=['subnet\u ip','subnet\u number','subnet\u description','subnet\u layer','vrf']