这是我的表格代码:
class ServiceChoiceForm(forms.ModelForm):
def activated_services(self):
"""
get the activated services added from the administrator
"""
all_datas = ()
data = ()
services = ServicesActivated.objects.filter(status=1)
for class_name in services:
data = (class_name, class_name.name.rsplit('Service', 1)[1])
all_datas = (data,) + all_datas
return all_datas
class ProviderForm(ServiceChoiceForm):
provider = forms.ChoiceField()
def __init__(self, *args, **kwargs):
super(ProviderForm, self).__init__(*args, **kwargs)
self.fields['provider'].choices = self.activated_services()
class Meta:
model = TriggerService
fields = ('provider', )
class ConsummerForm(ServiceChoiceForm):
consummer = forms.ChoiceField()
class Meta:
model = TriggerService
fields = ('consummer', )在我的views.py in get_form()中,在步骤0中,我用我的ProviderForm加载数据,就像我们在上面看到的那样,然后在第2步,我使用下面的代码在get_form()中加载数据,并尝试使用步骤0使用的值来过滤数据:
def get_form(self, step=None, data=None, files=None):
if step == '2':
data = self.get_cleaned_data_for_step('0')
consummer = ServicesActivated.objects.filter(status=1)
consummer = consummer.exclude(name__exact=data['provider'])
form = ConsummerForm(instance=consummer)但是,当我访问ConsummerForm时,我得到了错误:
'QuerySet' object has no attribute '_meta'对于Django来说,我试图处理多个模型
那么,我如何过滤我的选择领域消费者的数据呢?
发布于 2013-10-12 16:23:24
consummer = ServicesActivated.objects.filter(status=1)
consummer = consummer.exclude(name__exact=data['provider'])
form = ConsummerForm(instance=consummer)您正在传递一个QuerySet来形成,而不是一个模型实例:https://docs.djangoproject.com/en/1.5/topics/forms/modelforms/
https://stackoverflow.com/questions/19336296
复制相似问题