2011-06-01 10 views
0

我有一個簡單的模型類:ModelFormSet編輯所有條目的模型類

class Category(BaseModel): 
    categoryText = db.StringProperty() 
    parentCat = db.IntegerProperty() 

我想創建一個模型表單集,以顯示類別的所有條目:

窗體類:

class CategoryForm(forms.ModelForm): 
    categoryText = forms.CharField() 
    class Meta: 
     model = Category 

View.py

def showAllCategories: 
    CategoryFormSet = modelformset_factory(Category) 

    if request.POST: 
     formset = CategoryFormSet(request.POST) 
     if formset.is_valid(): 
      formset.save() 

    else: 
     formset = CategoryFormSet(Category.objects.all()) 
    return render_to_response('showcat.html',{'formset':formset}) 

不知道我在做什麼錯:我得到這個錯誤: 'StringProperty'對象沒有'可編輯的'屬性

這應該是非常簡單的,但它是一個挑戰。

+3

您已經三次提出同樣的問題,並且您已被告知3次問題是什麼。嘗試弄清楚問題出在哪裏,然後詢問**一次** – 2011-06-01 20:55:30

+0

@pastylegs:如果已經詢問過,請標記爲重複。 – 2011-06-03 12:42:17

回答

2

試試這個:

view.py

def showAllCategories(request): 
    CategoryFormSet = modelformset_factory(CategoryForm) 
    if request.method=='POST': 
     formset = CategoryFormset(request.POST) 
     if formset.is_valid(): 
      ... 
      formset.save() 
      ... 
    else: 
     formset = CategoryFormset(queryset=Category.objects.all()) 
+0

我誤將這個屬性。我把它從我的代碼中拿出來了。錯誤依然存在 – afshin 2011-06-01 21:31:56

+0

我試圖創建一個模型formset。我的理解是我可以創建一個模型formset來顯示Category模型的多個實例。試圖遵循django文檔,我的理解是我必須創建一個模型表單。 Django文檔很模糊;我試圖遵循模型表單部分。 – afshin 2011-06-01 21:39:26

+0

好吧,我已經編輯了我的帖子,注意到這一行的改變:CategoryFormSet = modelformset_factory(Category),並且在最後一行 – 2011-06-01 21:43:35

4

我意識到這是一個有點老了,但解決您的 「 'ModelFormOptions' 對象有沒有屬性 'MANY_TO_MANY'」 的錯誤,你可能想嘗試改變下面的代碼:

CategoryFormSet = modelformset_factory(CategoryForm) 

CategoryFormSet = modelformset_factory(Category) 

改爲使用模型的名稱。