Хорошо, я довольно новичок в Django, но я читал как онлайн-книгу django, так и документацию по djangoproject, но я не могу понять эту ошибку:
У меня есть модель «Заказы»:
class Orders(models.Model):
client_id = models.ForeignKey(Client)
order_date = models.DateField(auto_now_add = True)
due_date = models.DateField()
completion_date = models.DateField(blank=True, null=True)
rush_order = models.BooleanField(default=False)
billing_option = models.ForeignKey(Billing)
patient_first_name = models.CharField(max_length=30)
patient_middle_name = models.CharField(max_length=30, blank=True)
patient_last_name = models.CharField(max_length=30)
client_patient_id = models.CharField(max_length=30, blank=True)
emodel_patient_id = models.CharField(max_length=30)
special_instructions = models.TextField(blank=True)
order_items = models.ManyToManyField(Order_Items)
def __unicode__(self):
return '%s : %s %s O: %s F: %s' % (self.client_id, self.patient_first_name, self.patient_last_name, self.order_date, self.completion_date)
class Meta:
ordering = ['client_id']
У меня есть форма модели 'SearchOrderForm':
class SearchOrderForm(ModelForm):
class Meta:
model = Orders
exclude = ('rush_order', 'billing_option', 'client_patient_id', 'special_instructions', 'order_items',)
и у меня есть функция 'order_status':
def order_status(request):
error = False
error_searching = False
if request.method == 'POST':
OrderFormSet = SearchOrderForm()
formset = OrderFormSet()
if formset.is_valid():
cd = formset.cleaned_data()
emodels_results = cd()
emodels_results = cd(queryset = Order.objects.filter(Q(patient_first_name=search)|Q(patient_last_name=search)|Q(client_id=search)))
patient_first_name = request.POST('patient_first_name', None)
if patient_first_name:
emodels_results = emodels_results(queryset = Order.objects.filter(patient_first_name=patient_first_name))
patient_last_name = request.POST('patient_last_name', None)
if patient_last_name:
emodels_results = emodels_results(queryset = Order.objects.filter(patient_last_name=patient_last_name))
client_id = request.POST('client_id', None)
if client_id:
emodels_results = emodels_results(queryset = Order.objects.filter(client_id=client_id))
return render_to_response('search_results.html', {'models': emodels_results})
else:
emodels_results = "Still messed up!"
return render_to_response('search_results.html', {'models': emodels_results})
else:
error_searching = True
form = SearchOrderForm()
return render_to_response('order_status.html', {'form': form, 'error': error, 'error_searching': error_searching})
Я могу заполнить форму без проблем, но когда я отправляю форму, я получаю следующее сообщение об ошибке:
Проследить:
Файл "C: \ Python26 \ lib \ site-packages \ django \ core \ handlers \ base.py" в get_response
92. response = callback (request, * callback_args, ** callback_kwargs)
Файл "C: \ emodel_tracking .. \ emodel_tracking \ tracker \ views.py" в order_status
105. formset = OrderFormSet ()
Тип исключения: ошибка типа в / account / profile / orderstatus /
Значение исключения: объект SearchOrderForm не может быть вызван
Кто-нибудь знает, что я делаю неправильно с моей функцией SearchOrderForm, из-за которой Django говорит, что она не вызывается?