django的小操作,查询

Part1: 提高查询效率
newses = News.objects.select_related('category', 'author').get(id=1) # category和author字段为News表的外键, 使用select_related查询,会等待前端请求完毕后一次性查询出所有的数据

前端:
{% for news in newses %}
  {{ news.category.name }}
  {{ news.author.username }} # 这两个字段为外键
{% endfor %}

这样能减少查询的次数,提高效率

Part2:
后端通过djangorestframework传送art-tenplate模板需要的数据
详情下一篇 。。https://www.cnblogs.com/tangpg/p/9300256.html

art-template模板
引入template-web.js文件,官网Github中lib文件夹中,can copy after Raw
并声明django不解析该模板,
each模块的使用,
{*
    用一个type="text/html"的script标签存放模板:
    HTML代码
*}
{% verbatim %} 向django声明不解析该模板
<script id="test" type="text/html"> <h1>{{title}}</h1> <ul> {{each list as value i}} <li>索引 {{i + 1}} :{{value}}</li> {{/each}} </ul> </script>
{% endverbatim %} // 渲染模板 js代码 var data = { title: '标签', list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他'] }; var html = template('test', data); // document.getElementById('content').innerHTML = html;

// 指定添加到box这个地方
var box = $('#box-for-art-template-model');
box.append(html)

django 的 model的pk属性代表model的primary key

 New.pk = New.id

class New(models.Model):
     
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=100)

猜你喜欢

转载自www.cnblogs.com/tangpg/p/9299415.html
今日推荐