Django属性错误类型对象没有属性' all'

时间:2018-03-10 20:01:10

标签: django django-models django-forms

这个想法是拥有任务并为每个任务添加一个或多个标签。任务模型引用标记类为tags = models.ManyToManyField(Tag, blank=True),并且在管理界面中工作正常。现在当我打电话给我的上传表格时出现错误

AttributeError at /upload/
type object 'Tag' has no attribute 'all'

出现了。这是上传表格

class UploadForm(forms.Form):
    title= forms.CharField(label='Tasktitle', max_length=255)
    data= forms.FileField(label='Data')
    tags = forms.ModelMultipleChoiceField(Tag)

考虑到我在views.py中调用表单是我正在使用的函数:

def upload(request):
    if request.method == 'POST':
        form = UploadForm(request.POST, request.FILES)
        if form.is_valid():
            newTask = Task(titel=request.POST['title'], tags=request.POST['tags'], data=request.FILES['data'])
            newTask.save()
            return HttpResponseRedirect('success/')
    else:
        form = UploadForm()
    return render(request, 'upload/upload.html', {'form': form})

我想调整不同的参数,但我无法弄清楚所有参数的调用位置。属性来自或为什么需要它。如果您需要更多信息或说明,请添加评论。感谢。

1 个答案:

答案 0 :(得分:0)

forms.ModelMultipleChoiceField接受一个查询集,但是你传入一个模型

尝试

tags = forms.ModelMultipleChoiceField(queryset=Tag.objects.all())