如何通过在html中的复选框选择传递表格行n将数据传递到views.py django
问题描述:
新的python-django需要帮助... 我想通过复选框将选定的表格行从模板传递到views.py使用后method..and被查可以选择多行... ň提交与POST方法行的views.py所选行应该从模板消失后如何通过在html中的复选框选择传递表格行n将数据传递到views.py django
template:a.html
<tr > {% if getlog %}
<form action="{% url list %}" method="post">{% csrf_token %}
<td><input type="checkbox" id="check_all" checked="checked"/></td>
<thead><th COLSPAN="2">App Name</th>
<th COLSPAN="2">File Name</th>
<th COLSPAN="2">Function Name</th>
<th COLSPAN="2">Path Name</th>
<th COLSPAN="2">Line No</th>
<th COLSPAN="2">Level Name</th>
<th COLSPAN="2">Message</th>
<th COLSPAN="2">Thread Name</th>
</tr>
</thead>
{% for log in loglist %}
<tr id="tr1">
<td><input type="checkbox" class="check_field" checked="checked" name="list1"/> </td>
<td colspan="2" > {{ log.app.appname }} </td>
<td colspan="2"> {{ log.filename }}</td>
<td colspan="2" >{{ log.funcname }}</td>
<td colspan="2" >{{ log.pathname }}</td>
<td colspan="2" >{{ log.lineno }}</td>
<td colspan="2" >{{ log.typeid.levelname }}</td>
<td colspan="2" >{{ log.typeid.message }}</td>
<td colspan="2">{{ log.threadName }}</td>
</tr>
{% endfor %}
</tbody>
</table>
如何做到这一点? ?哪里错了? 谢谢... :)
答
你可能会错误的通过使用非Django的方式来处理数据提交。
Django的强大之处在于一个非常强大的表单系统,它可以为您生成表单以及处理常见的任务,如保存记录到数据库中,表单验证等
我知道这是一个痛苦,但它真的值得需要一些时间来运行Django书籍,并做一些示例exercies,以便熟悉Django基础知识。有了这些,你可以考虑采取什么步骤来推进你真正想做的事情。
你是一个特例,所以一个简单的formset或ModelForm不会真的做到这一点,这是我建议的一个障碍。
models.py
class Log(models.Model):
# whatever fields you want
date_hidden = models.DateTimeField(null=True, blank=True)
forms.py
class LogDisplayForm(forms.Form):
logs_to_hide = forms.ModelChoiceField(required=False, queryset=Log.objects.exclude(date_hidden__isnull=False)
def save(self, *args, **kwargs):
if self.cleaned_data.get('logs_to_hide'):
Log.object.filter(pk__in=self.cleaned_data['logs_to_hide']).update(date_hidden=datetime.datetime.now())
然后在你的模板形式,只需重命名列表1至logs_to_hide并确保字段的值是主日志记录的关键。这里假设你阅读了Django的实际工作方式,并知道如何处理表单验证和表单保存。
请注意,我给你的代码是不完整的,如果没有相当多的额外工作,你将无法工作。 这是点。
好吧我会阅读文档..但是有没有其他方式通过
对不起,这个问题基本上是无法回答的,因为你对这一切如何工作还没有足够的了解。我真的认为阅读文档并学习表单如何工作是必要的。从根本上说,你所做的不工作的原因是因为你需要将实际值发送到你的视图函数,而你并没有这样做。如果您按照我的指示阅读文档,它将起作用。您设置的模板将不会按原样运行。 – 2012-03-14 17:19:31
谢谢... m阅读文档..但没有得到在哪个方向我应该工作..我应该去为Django的形式k javascript ..因为我需要得到选定的复选框表格行..所以我怎么能绑定与表格行复选框?以及如何获得实际数据.. ??困惑... – manali 2012-03-15 10:39:46
相关问题