我有一个简单的模型类:
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'对象没有'editable'属性
这应该很简单,但这是一个挑战。
答案 0 :(得分:4)
我意识到这有点旧,但要修复“'ModelFormOptions'对象没有属性'many_to_many'”错误,您可能想尝试更改以下代码:
CategoryFormSet = modelformset_factory(CategoryForm)
到
CategoryFormSet = modelformset_factory(Category)
请改用模型的名称。
答案 1 :(得分: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())