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

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值