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

时间:2015-02-13 17:55:44

标签: python html css django django-forms

我的表格和型号如下。我正在使用Django 1.6.4。我可以根据参数:

创建带有defualt检查选项的多选字段
  

self.fields [ “选项”]。初始

但是当我设置

时,如何将此选中的选项设置为禁用以进行编辑
  

self.fields [ “选项”]。widget.attrs [ '禁用']

它使所有字段都被禁用。是否可以在表单中处理它,或者我应该使用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"

1 个答案:

答案 0 :(得分:0)

对于RadioSelect,您可以通过所有复选框迭代模板并将一些特定数据应用于该模板。