Hello python / django newbie here,我正在尝试构建一个从用户收集短消息并显示它们的应用程序。但首先我必须验证消息,以确认它们不包含非法文本/内容。这是问题,我创建了一个管理部分,管理员登录以验证发布的消息,大约10条等待批准的消息显示如下:
<form method="post" action="">
{% csrf_token %}
<input type="submit" value="Save" class="button" />
<table>
<thead>
<tr>
<td width="100">ID</td>
<td width="150">Name</td>
<td>Content</td>
<td>Approve</td>
</tr>
</thead>
<tbody>
{% for ad in pendingAds %}
<tr>
<td>{{ad.id}}</td>
<td>{{ad.adName}}</td>
<td>{{ad.adText}}</td>
<td>
<select>
<option>pending</option>
<option>approved</option>
<option>disapproved</option>
</select>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<input type="submit" value="Save" class="button" />
</form>
当提交给处理它的视图时,我如何处理每个n个表单选择元素及其各种值
由于
答案 0 :(得分:0)
你可以这样做:
for key, value in request.POST.iteritems():
if key.startswith('adstatus_') and value == 'approved':
id = key.split('_')[1]
# there you can publish advert
对于这项工作,您需要修改模板:
<select name="adstatus_{{ad.id}}">
<option value="pending">pending</option>
<option value="approved">approved</option>
<option value="disapproved">disapproved</option>
</select>
答案 1 :(得分:0)
我认为,您可以<input name="id" type="hidden" value="{{ ad.id }}">
并使用select name="status[{{ ad.id }}]"
。
然后,在后端,您可以处理请求:
id_list = request.POST.getlist('id')
status_dict = {id:request.POST.get('status[{}]'.format(id)) for id in id_list}