Ошибка Django: у объекта 'function' нет атрибута 'save' - PullRequest
0 голосов
/ 28 февраля 2012

Может кто-нибудь сказать, что я делаю не так?

Model.py

class Cattest(models.Model):
category = models.ForeignKey(Category)    
info = models.CharField(max_length=35, blank=True)    

form.py

class CattestForm(forms.Form):
autocomplete = forms.CharField(
    label='Type the name of a category (AutoCompleteWidget)',
    widget=selectable.AutoCompleteWidget(CategoryLookup),
    required=False,
)
info = forms.CharField(max_length=35, label="Information")   

view.py

def cattest(request):
if request.method == 'POST':
    form = CattestForm(request.POST)
    if form.is_valid():
        cattest.save()        
else:
    if request.GET:
        form = CattestForm(initial=request.GET)
    else:
        form = CattestForm()
return render_to_response('bsmain/form.html', {'form': form}, context_instance=RequestContext(request))    

Traceback:

AttributeError в / bsmain / cattest /

Объект 'function' не имеет атрибута 'save'

Способ запроса: POST URL запроса: http://127.0.0.1:8000/bsmain/cattest/ Джанго версия: 1.3.1 Тип исключения: AttributeError Исключение:

Объект 'function' не имеет атрибута 'save'

Местоположение исключения: /home/bill/workspace/boatsite/../boatsite/bsmain/views.py в cattest, строка 50 Исполняемый файл Python: / usr / bin / python Версия Python: 2.6.5

Ответы [ 2 ]

3 голосов
/ 28 февраля 2012

У вас есть type-o в вашем представлении.

вы вызываете save() для функции, в которой вы находитесь cattest.save() Я думаю, это должно быть в форме ??Возможно, вы захотите взглянуть на ModelForm. Она предоставляет форму, которая отображается непосредственно на вашу модель, что выглядит так, как вы делаете.

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#django.forms.ModelForm

Форма, которую вы используете, простонормальная форма и не имеет метода сохранения.После создания подкласса ModelForm вы можете вызвать save для экземпляра формы.

if your_form.is_valid():
  your_form.save()
0 голосов
/ 21 апреля 2018

Вы вызываете метод save для самой функции.Это причина ошибки.если вы ищете форму для сохранения, то:

if form.is_valid():
    form.save()
...