这一直让我发疯,我无法让它工作。这是一个简单的场景:我想向用户展示我从数据库中提取的动态生成的用户列表,以便用户可以从 ChoiceField 中选择一个用户(呈现为 HTML 选择)并单击“获取数据”按钮。
我不想在表单中创建用户列表,因为新用户会一直出现。我想在我的视图中查询用户并将该用户列表绑定到表单,以便我始终可以呈现最新的用户列表。所以这是我的表格:
class ViewUsersForm(forms.Form):
user_choice = forms.ChoiceField()
这是我的观点:
from django.contrib.auth.models import User
from mystuff.forms import ViewUsersForm
def site_admin_view_user_groups_page(request):
if request.method == 'POST':
<...handling POST for this question is unimportant...>
else:
users = User.objects.all()
data = {'user_choice': users}
form = ViewUsersForm(data) # binding the list of users here
variables = RequestContext(request, {'form': form,})
return render_to_response('school/admin/view_user_groups_page.html', variables)
最后,这是我要渲染的模板:
<form action="/site/viewusers/" method="post">{% csrf_token %}
{{ form.user_choice }}
<button type="submit" name="getDataButton">Get Data</button>
</form>
因此,当模板呈现绑定表单 (form = ViewUsersForm(data)) 时,ChoiceField 出现空。如何获取 ChoiceField 中的数据以在我的 HTML 中呈现???我在这里错过了什么真正简单的事情?还是我以完全错误的方式解决这个问题?