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?

bug: django-mysql 增删改查功能

<ul>

    {% for article in article_list %}

        <li>

            <h3>{{ article.title }}</h3>

            <p>{{ article.content }}</p>

        </li>

    {% endfor %}

</ul>

注意:

for循环语句 :{%  %}

字段取值: {{   }}

效果图如下所示:

bug: django-mysql 增删改查功能

 

2、{% include "article.html" %}

引入页面  为什么内容为空,单独创建一个url 打开就没问题

bug: django-mysql 增删改查功能 bug: django-mysql 增删改查功能

bug: django-mysql 增删改查功能bug: django-mysql 增删改查功能

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

bug: django-mysql 增删改查功能

解决办法:序列化时添加第三个参数 ensure_ascii

articleList = serializers.serialize("json",models.Article.objects.filter(title__contains=title).filter(content__contains=content),ensure_ascii=False)

bug: django-mysql 增删改查功能

 

问题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')

bug: django-mysql 增删改查功能

 

4、django  多个条件查询 

问题:django.core.exceptions.FieldError: Cannot resolve keyword 'depart' into field. Choices are: author, id, name

bug: django-mysql 增删改查功能 bug: django-mysql 增删改查功能

 

解决办法:

表连错了 

bug: django-mysql 增删改查功能

 

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)