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)
Django中models.py(添加管理类模型)
最新推荐文章于 2021-09-16 21:11:06 发布