bug: django-mysql 增删改查功能
1、Invalid block tag on line 13: 'article.title', expected 'empty' or 'endfor'. Did you forget to register or load this tag?
<ul>
{% for article in article_list %}
<li>
<h3>{{ article.title }}</h3>
<p>{{ article.content }}</p>
</li>
{% endfor %}
</ul>
注意:
for循环语句 :{% %}
字段取值: {{ }}
效果图如下所示:
2、{% include "article.html" %}
引入页面 为什么内容为空,单独创建一个url 打开就没问题
def showArticle(request):
from proApp import models
article_list = models.Article.objects.all()
return render(request,"article.html",{"article_list":article_list})
解决办法:
不需要在 def 中return render(返回的是代码片段)。正确代码如下:
def addArticle(request):
title = request.POST.get("title")
content = request.POST.get("content")
dic = {'title': title, 'content': content}
models.Article.objects.create(**dic)
return HttpResponse("文章添加成功!") // 返回的即是ajax 获得data
3、django 多个条件查询
问题1:TypeError: Object of type 'QuerySet' is not JSON serializable
解决办法: https://blog.****.net/teavamc/article/details/77777301
问题2:中文获得的是unicode
解决办法:序列化时添加第三个参数 ensure_ascii
articleList = serializers.serialize("json",models.Article.objects.filter(title__contains=title).filter(content__contains=content),ensure_ascii=False)
问题3:ajax获取的list数据 并不是对象形式 https://www.jb51.net/article/136971.htm
解决办法:字符串 -> 字典形式
articleList = serializers.serialize("json",models.Article.objects.filter(title__contains=title).filter(content__contains=content),ensure_ascii=False)
articleList = json.loads(articleList)
data = {
'ret': {
'success': True,
'retCode': 200,
'retMsg': "文章查询成功!"
},
'list': articleList
}
return HttpResponse(json.dumps(data), content_type='application/json; charset=utf-8')
4、django 多个条件查询
问题:django.core.exceptions.FieldError: Cannot resolve keyword 'depart' into field. Choices are: author, id, name
解决办法:
表连错了
5、django 多个条件查询
问题:django.core.exceptions.FieldError: Related Field got invalid lookup: contains
解决办法:contains 是模糊搜索,这里部门值是绝对搜索
depart = request.POST.get("depart")
search_sql = search_sql.filter(name__contains=name).filter(depart=depart)