1

誰かが私が間違っていることを教えてもらえますか?

Model.py

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

フォーム.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 例外値:

「関数」オブジェクトには属性「保存」がありません

例外の場所: cattest の /home/bill/workspace/boatsite/../boatsite/bsmain/views.py、50 行目 Python 実行可能ファイル: /usr/bin/python Python バージョン: 2.6.5

4

3 に答える 3

3

ビューにタイプoがあります。

save()あなたがいる関数を呼び出していcattest.save() ます。これはフォームにあるはずです?? モデルに直接マップするフォームが提供されていることを確認したいModelForm場合があります。これは、実行しているように見えます。

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

使用しているフォームは通常のフォームであり、save メソッドはありません。ModelForm をサブクラス化した後、フォーム インスタンスで save を呼び出すことができます。

if your_form.is_valid():
  your_form.save()
于 2012-02-28T02:47:53.330 に答える
-1

class CattestForm(forms.Form):する必要がありますclass CattestForm(forms.ModelForm):

于 2019-08-09T21:15:17.017 に答える