2013-11-09 38 views
2

我具有以下模型:如何在一個模板來顯示從數據庫中的數據

class comment(models.Model): 
    userid=models.CharField(max_length=140) 
    apparelid=models.IntegerField(blank=True) 
    desc=models.TextField(blank=True) 
    def __unicode__(self): 
     return self.userid 

形式:

class commentForm(ModelForm): 
    class Meta: 
     model=comment 
     exclude=('userid','apparelid',) 

和視圖如下:

def comment(request,title_id): 
    if request.method=='POST': 
     form=commentForm(request.POST) 
     if form.is_valid(): 
      new=form.save(commit=False) 
      new.userid=request.user.username 
      new.apparelid=title_id 
      new.save() 
      return HttpResponseRedirect('/') 
     else: 
      form=commentForm() 

    template=loader.get_template('apple3/comment.html') 
    context=RequestContext(request,{ 
             'form':form, 
             } 
          ) 
    return HttpResponse(template.render(context)) 

每當我打開我的頁面上面的形式顯示如下錯誤:

Exception Type:  AttributeError 
Exception Value:  'function' object has no attribute 'objects' 

回答

3

您可能從視圖中導入comment模型,然後再使用comment作爲視圖名稱。這就是錯誤被拋出的原因。

如果您在同一模塊中使用它們,請爲您的視圖和模型使用不同的名稱。

1

模型和視圖功能的名稱是其導致的錯誤一樣:

Exception Value:  'function' object has no attribute 'objects' 

您可以使用不同的命名約定的類和函數。按照PEP8,類名的第一個字母應該是大寫/大寫,函數的名字應該是小寫。

所以你的情況,如果你要不停的名稱完全相同,可以將您的模型類重命名爲評論,讓您的視圖函數的名稱是評論和應該解決的問題。

2

手頭的問題似乎由@mariodev解決。 Additionaly,我建議以下兩個步驟,避免將來發生類似問題的意思是:

  1. 閱讀PEP8,樣式指南Python代碼徹底
  2. 只能使用packages and modules import

以下這兩個鏈接將使您的代碼更pythonic和更少的錯誤傾向。

相關問題