【发布时间】:2012-11-28 14:23:05
【问题描述】:
这让我发疯了,我无法让它工作。这是一个简单的场景:我想向用户展示我从数据库中提取的动态生成的用户列表,以便用户可以从 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 中呈现???我在这里错过了什么真正简单的事情?还是我的做法完全错误?
【问题讨论】:
标签: data-binding django-forms django-views