我必须使用Django开发一个Web界面,我尝试在HTML中显示一个选择列表,其中填充了从MongoDB查询中获取的值,但我遇到了一些问题。我正在使用MongoEngine。 我的forms.py看起来像这样:
class top_hashtags(forms.Form):
top_hashtags_collection = forms.ModelChoiceField(queryset=Collections.objects.all(), required=True)
在views.py中我这样做:
def index(request):
form = top_hashtags()
return render(request, 'index.html', {'user':1, 'top_hashtags_form': form}, context_instance=RequestContext(request))
然后,在index.html中我尝试了选项:
{{ top_hashtags.as_p }}
,我会收到一个Collections对象列表。如果我点击提交,表单不会通过验证。
<td>
<ul>
{% for choice in top_hashtags.top_hashtags_collection.field.queryset %}
<li>
<input type="radio" name="top_hashtags_collection" value="{{choice.collection_name}}" />
<label for="">{{choice.collection_name}}</label>
</li>
{% endfor %}
</ul>
</td>
&#13;
它正确显示了选项,但在点击“提交”按钮时我得到AttributeError at /top_hashtags_form 'QuerySet' object has no attribute 'model'
。
我想要的只是让用户在服务器端进行选择(显然)。
我尝试过很多东西,但是我找不到解决办法。我想这是愚蠢的,但我找不到。任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
我能够解决问题。它可能不是最优雅的方式,但它有效:
{{ form.as_p }}
在我的index.py上,我只使用{{1}}。
我希望它可以帮助那些面临同样问题的人。