这个想法是拥有任务并为每个任务添加一个或多个标签。任务模型引用标记类为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})
我想调整不同的参数,但我无法弄清楚所有参数的调用位置。属性来自或为什么需要它。如果您需要更多信息或说明,请添加评论。感谢。
答案 0 :(得分:0)
forms.ModelMultipleChoiceField
接受一个查询集,但是你传入一个模型
尝试
tags = forms.ModelMultipleChoiceField(queryset=Tag.objects.all())