有人可以告诉我我做错了吗?
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'function'对象没有属性'save'
请求方法:POST 请求网址:http://127.0.0.1:8000/bsmain/cattest/ Django版本:1.3.1 异常类型:AttributeError 例外值:
'function'对象没有属性'save'
例外地点:cattest第50行/home/bill/workspace/boatsite/../boatsite/bsmain/views.py Python可执行文件:/ usr / bin / python Python版本:2.6.5
答案 0 :(得分:3)
您的视图中有一个类型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()
答案 1 :(得分:0)
您正在函数本身调用save方法。这就是错误背后的原因。如果您正在寻找表格保存,那么:
if form.is_valid():
form.save()
答案 2 :(得分:0)
class CattestForm(forms.Form):
应该是class CattestForm(forms.ModelForm):