Django:将 ModelChoiceField 与 MongoEngine 一起使用时出错

Django: error when using ModelChoiceField with MongoEngine

我必须使用 Django 开发一个 Web 界面,我正在尝试在 HTML 中显示一个 select 列表,其中填充了从 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 我尝试了选项:

<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>

它正确显示了选项,但我在单击“提交”按钮时得到 AttributeError at /top_hashtags_form 'QuerySet' object has no attribute 'model'

我想要的只是在服务器端获得用户的选择(显然)。

我尝试了很多方法,但找不到解决方案。我想这是愚蠢的事情,但我找不到。任何帮助将不胜感激。提前谢谢你。

我能够解决问题。这可能不是最优雅的方式,但它确实有效:

class clean_collection(forms.Form):
    OPTIONS = ()
    OPTIONS = list(OPTIONS)
    queryset = Collections.objects.all()
    for q in queryset:
        OPTIONS.append((q.collection_name, q.collection_name))
    OPTIONS = tuple(OPTIONS)
    coleccion = forms.ChoiceField(widget=forms.Select,
                                         choices=OPTIONS)
    keyword = forms.CharField(required=False)

在我的 index.py,我只使用 {{ form.as_p }}

希望对遇到同样问题的人有所帮助