【发布时间】:2012-04-22 13:13:05
【问题描述】:
问题是我无法使用已通过视图中的实例选择和转发的选项值填充我的 checkboxSelectMultiple 小部件。
这些是相关的类:
查看:
if sid and request.method != "POST":
try:
obj = Service.objects.get(pk=int(sid), user=request.user.pk)
form = addNewService(instance=obj)
except:
return HttpResponseRedirect("/")
表格:
class addNewService(forms.ModelForm):
pk = forms.HiddenInput()
authorities = forms.ModelMultipleChoiceField(queryset=authorities.objects.all(), widget=forms.CheckboxSelectMultiple, required=True)
error_css_class = 'error'
required_css_class = 'required'
#organisation_logo = forms.ImageField()
class Meta:
model = Service
#exclude = ("user",)
fields = ( 'service_name',
'category',
'service_duration',
'price',
'bursarie',
'vat_included',
'travelExpensesIncluded',
'authorities',
'type_of_delivery',
'description',
'active',
)
型号:
class Service(models.Model):
user = models.ForeignKey(User)
service_name = models.CharField(max_length=30)
description = models.TextField()
category = models.ForeignKey(Category)
authorities = models.ManyToManyField(authorities)
active = models.BooleanField()
def removeServiceURL(self):
return "/Services/Remove/%s"%self.pk
def __unicode__(self):
return "%s @ %s"%(self.service_name, self.user.username)
复选框会相应地显示,但是当我从实例打开表单时,所有内容都会正确填写,但复选框除外,这些复选框均未选中。
我做错了什么?
谢谢你的回答。
【问题讨论】:
-
我猜你只需要更改字段的小部件?如果是这样,您可以使用
widgetsattribute 而无需重新定义该字段。