您的位置:首页 > 编程语言 > Go语言

Django中models.py(添加管理类模型)

2017-10-12 12:02 423 查看
1.models.py中写入管理类模型
# 为了方便文章的倒序功能,比如按添加的时间、点赞数、评论数、收藏数
class ArticleManager(models.Manager):
# 按照点赞数排序
def query_by_polls(self):
# get_queryset():Manager提供的内置方法,负责查询某一个模型中的所有结果
query = self.get_queryset().order_by('-poll_num')
return query

# 按照时间排序
def query_by_time(self):
query = self.get_queryset().order_by('-pub_date')
return query

# 按照关键字查询
def query_by_keyword(self, keyword):
# title_contains:标题中函数的关键字
query = self.get_queryset().filter(title_contains=keyword)
return query

# 按照文章的分类查询
def query_by_column(self, column_id):
query = self.get_queryset().filter(column_id=column_id)
return query

# 按照用户查询用户相关的文章
def query_by_user(self, user_id):
# 根据user_id找出用户
user = NewUser.objects.get(id=user_id)
# 再根据用户和文章之间对应的关系,查处该用户关联的文章
article_list = user.article_set.all()
return article_list
2.modelS.py中,在文章模型中创建管理类模型对象objects 
# 文章的模型
@python_2_unicode_compatible
class Article(models.Model):

# 设置Article模型和Articlemanager管理器之间的绑定关系

# 相当于自定义了Article.objects.all()中的objects对象
objects = ArticleManager()
3.views.py中写入
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.shortcuts import render

from models import Article,Column,Comment,Auther,NewUser
from forms import LoginForm

# Create your views here.

# 项目分析:
# 1.后台admin模块,需要后台管理的内容有:文章、分类、作者、评论、自定义的user用户;
# 2.登录和注册模块;
# 3.前端页面的数据展示和路由的配置;

# 项目和功能分析
# 1.文章的呈现:包括文章的标题、内容、作者、评论、点赞、收藏
# 2.用户的信息:昵称、邮箱、密码、简介;和用户相关的还有用户收藏的文章、点赞的文章、评论的文章
# 3.用户在收藏、点赞时,只能允许操作一次,评论可以多次;实现收藏点赞一次,需要知道哪篇文章和用户之间的对应关系(用户是否已经点赞,是否已经收藏)
# 4.设计数据模型的时候,需要让用户和文章产生多对多的关系
# 5.用户在进行点赞、收藏、评论时,必须先处于登录状态,如果没有登录,自动跳转到登录页面进行登录

# 访问文章首页的index的视图函数
def index(request):
# 查询所有文章
latest_article_list = Article.objects.query_by_time()
# 登录表单
loginform = LoginForm()
# 需要把文章列表,表单输入部分传递给index.html进行加载
context = {'latest_article_list':latest_article_list,'loginform':loginform}

return render(request,'index.html',context)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐