导读:很多朋友问到关于django查询如何条件判断的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
Django model 遇到查询条件组合比较多的情况下怎么写
里面有执行原始查询的方法,不过我记得官网文档版本API和这个不一致,做开发还是要过E文文档关的。
朋友,您好,我想问Django分页后查询条件丢失的问题
很简单的GET传值,晚上再回答吧,现在有点事...
给你个示例代码吧
# views.py
def order_forms_by_days(request):
"""
订单日统计报表,读取 本地 count_days 表
:param request:
:return:
"""
cursor = connections['mfashion_db'].cursor()
sql = 'SELECT * FROM count_days ORDER BY date DESC'
cursor.execute(sql)
results = dictfetchall(cursor)
limit = 20
paginator = Paginator(results, limit)
page = request.GET.get('page')
try:
orders = paginator.page(page)
except(PageNotAnInteger, EmptyPage):
orders = paginator.page(1)
params = {
'request': request,
'orders': orders,
'page': page
}
return render_to_response('boss/census_days.html', params, context_instance=RequestContext(request))
{% with orders as datas %}
div class="ui page grid floated" style="margin-top: 30px;"
div class="column"
h2订单日统计报表/h2
订单总数量: h3{{ all_counts }}/h3总金额(元): h3{{ all_price }}/h3
table class="ui compact small striped table"
thead
tr
th订单编号/th
th下单时间/th
th支付时间/th
th买家姓名/th
th卖家名称/th
th订单状态/th
th商品名称/th
th订单金额/th
/tr
/thead
tbody
{% for order in orders %}
tr
td{{ order.trade_no }}/td
td{{ order.create_time }}/td
td{{ order.paid }}/td
td{{ order.shipped }}/td
td{{ order.sign }}/td
td{{ order.completed }}/td
td{{ order.cancelorder }}/td
td{{ order.deliveryfailure }}/td
td{{ order.refund }}/td
td{{ order.refuseorders }}/td
td{{ order.closeorders }}/td
td{{ order.total }}/td
/tr
{% endfor %}
/tbody
/table
div class="ui two column centered grid"
div class="column centered row"
div class="ui pagination menu"
{% if datas.has_previous %}
a class="icon item"
href="?{% url_replace request 'page' datas.previous_page_number %}"
i class="left arrow icon"/i
/a
{% else %}a class="disabled icon item"i class="left arrow icon"/i
/a
{% endif %}
div class="item"
{{ datas.number }}/{{ datas.paginator.num_pages }}
/div
{% if datas.has_next %}
a class="icon item"
href="?{% url_replace request 'page' datas.next_page_number %}"
i class="right arrow icon"/i
/a
{% else %}a class="disabled icon item"i class="right arrow icon"/i
/a
{% endif %}
/div
/div
/div
/div
/div
{% endwith %}
Django filter中contains 用法
用PYTHON ,DJANGO 做站,在通常的情况下,需要用到 orM 的查询方法,比如object.filter(tag__contains='keywords')....
在这种情况下,如果你跟踪 sql 语句,你会发现,SQL 语句会生成 select .... like bianry '%keywords%', 如果是这样的语句,在某些情况是下是会出问题的,也就是说查询出来的数据可能会比你预计的少。
如果你用 raw sql 查总数 select count(*) from table where like '%keywords%' 得到数量可能比你用ORM 采用上面的方式得到的数据多,问题就在于生成的条件问题。
后来查询了 django 说明,如果把ORM 语句变成:object.filter(tag__icontains='keywords').... 就好了。
注意contains ,icontains 的区别. 后来从django官网查到了说明:
结语:以上就是首席CTO笔记为大家整理的关于django查询如何条件判断的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django查询如何条件判断的相关内容别忘了在本站进行查找喔。