免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2621 | 回复: 5
打印 上一主题 下一主题

问一个django的问题(有新问题再次提问) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-31 12:55 |只看该作者 |倒序浏览
按照3楼修改下代码,遇到新问题,代码和显示见5楼

做一个产品管理的小应用.当查询出结果产生结果列表后我想在每条记录前做一个标记然后再用一个按钮将标记出的结果产生一个报告并在数据库中记录使用次数+1,并记录使用时间。我不清楚这个功能怎么做.我现在实现了产品的查询,结果前也加了checkbox,后边就不知道该如何实现了。

模板是这个样子的。
{% if query %}   
    <h2>Results for "{{ query|escape }}":</h2> {% if results %}   
     <ul> {% for product in results %}   
   {#   <li>{{ product|escape }}</l1>   #}
      <tr>
  <td><input type="checkbox" name="used" id="id_cc_myself" /></td>
  <td>{{ product.Product }}</td>
  <td>{{ product.Serial }}</td>
  <td>{{ product.usetimes }}</td>
  <td>{{ product.regist }}</td>
</tr>
   {% endfor %}   

views.py


def search(request):   
    query                 = request.GET.get('q', '')
    staryear         = request.GET.get('year', '')
    usesign                = request.GET.get('usesign','')
    if query:   
            if usesign == '0':
                qset = (Q(Product__icontains=query)  & Q(usetimes__isnull=True) &Q(BeginDate__icontains=staryear))
        elif usesign == '1':
                qset = (Q(Product__icontains=query)  & Q(usetimes__isnull=False) &Q(BeginDate__icontains=staryear))
        elif  usesign == '9':
                qset = (Q(Product__icontains=query)  &Q (BeginDate__icontains=staryear))
        results = CiscoSN.objects.filter(qset).distinct()   
    else:   
        results = []   
    return render_to_response("sn/search.html", {   
        "results": results,   
        "query": query,  
        "usesign":usesign,
    })

[ 本帖最后由 fandatou 于 2008-8-1 17:36 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-07-31 13:04 |只看该作者
按钮提交以后获取所有checkbox值,然后循环一次所有的你选的ID

在循环里更新数据库。

论坛徽章:
0
3 [报告]
发表于 2008-07-31 13:11 |只看该作者
<td><input type="checkbox" name="used" id="id_cc_myself" /></td>
按钮提交以后获取所有checkbox值,然后循环一次所有的你选的ID

这个该怎么写呢?我HTML不熟的说。

论坛徽章:
0
4 [报告]
发表于 2008-07-31 14:58 |只看该作者
<td><input type="checkbox" name="used[]" id="111" /></td>
<td><input type="checkbox" name="used[]" id="222" /></td>
<td><input type="checkbox" name="used[]" id="333" /></td>

你这样输出,记得名字里有[],在提交之后你可以获取used这个变量,应该是数组类型。
你试试看。

论坛徽章:
0
5 [报告]
发表于 2008-07-31 16:20 |只看该作者
呵呵,晚上回去试试,先谢了

论坛徽章:
0
6 [报告]
发表于 2008-08-01 17:24 |只看该作者
模板里面我修改成这样了
  <form action="../report" method="GET">  
      <tr>
  <td><input type="checkbox" name="used[]" id='2' VALUE={{ product.Serial }}/></td>
  <td>{{ product.Product }}</td>
  <td>{{ product.Serial }}</td>

views.py中增加了
def report(request):
        sn_dict                = request.GET.get('used[]','')
        return render_to_response("sn/report.html", {   
        "used": sn_dict,   
    })

提交后浏览器中的url是



http://127.0.0.1:8000/sn/report/ ... B%5D=FDO1217Y2YX%2F


浏览器显示  结果是 F D O 1 2 1 7 Y 2 Y X /

貌似只是获得了最后一个serial。貌似uerd[]还是当个变量了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP