2012-02-28 73 views
0

有人可以告诉我我做错了什么吗?Django错误:'函数'对象没有'保存'属性

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))  

回溯:

在/ bsmain/cattest/

AttributeError的

'功能' 对象具有 '保存'

请求方法没有属性:POST 请求URL:http://127.0.0.1:8000/bsmain/cattest/ Django的版本:1.3.1 异常类型:AttributeError的 异常值:

'功能' 对象有 '保存'

异常位置没有属性:/home/bill/workspace/boatsite/../boatsite/bsmain/views.py在cattest 50行 Python的可执行文件:在/ usr/bin中/ Python的 PYT hon Version:2.6.5

+0

难道你不想在表单引用的模型上调用.save(),而不是视图函数本身? – imm 2012-02-28 02:47:54

回答

3

您在视图中输入了-o。

你正在呼吁save()你正在的功能cattest.save() 我认为这应该是在形式?你可能想看看ModelForm它提供了一个直接映射到你的模型的表单,它看起来像你正在做的。

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

形式您使用的仅仅是一个正常的形态和没有保存方法。在继承ModelForm之后,您可以调用保存表单实例。

if your_form.is_valid(): 
    your_form.save() 
相关问题