Django,ModelMultipleChoiceField中的初始值仅设置为disabled

2024-04-19 03:59:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的形式和型号。我使用的是django1.6.4。我能够根据参数创建带有默认选中选项的多选字段:

self.fields["options"].initial

但是如何将选中的选项设置为禁用编辑,当我设置时

self.fields["options"].widget.attrs['disabled']

它使所有字段都被禁用。是否可以在表单中处理它,或者应该使用CSS样式来处理它。在

class Option(models.Model):
    name = models.CharField(max_length=20, verbose_name="Name", unique=True)

class Device(models.Model):
    options = models.ManyToManyField(Option, null=True, blank=True)
    serial_number = models.CharField(max_length=20, verbose_name="Serial number", unique=True)

class EditDeviceForm(forms.Form):
      serial_number = forms.CharField(label="Serial number:")  
      options = forms.ModelMultipleChoiceField(label="Options:", 
                widget=forms.CheckboxSelectMultiple(),
                queryset=Option.objects.all()) 
      def __init__(self, *args, **kwargs):
                super(EditDeviceForm, self).__init__(*args, **kwargs)
                self.fields["options"].initial = Option.objects.filter(device__in = Device.objects.filter(serial_number=s_number))
                #self.fields["options"].widget.attrs['disabled'] = "disabled"

Tags: nameselftruenumberfieldsobjectsmodelsserial