首页 > 其他分享 >Day_09 项目下拉

Day_09 项目下拉

时间:2023-05-11 18:22:24浏览次数:38  
标签:09 项目 list manage request project html Day def

1.切换菜单

1.1 * 从数据库中获取:

  • 我创建的
  • 我参与的

1.2 循环显示
1.3 当前页面需要显示 / 其他页面也需要显示 【inclusion_tag】

# 1.在注册app下创建文件templatetags/project.py
from django.template import Library
from web import models

register = Library()

@register.inclusion_tag('inclusion/all_project_list.html')
def all_project_list(request):
    # 获取我创建的所有项目
    my_project_list = models.Project.objects.filter(creator=request.tracer.user)
    # 获取我参与的所有项目
    join_project_list = models.ProjectUser.objects.filter(user=request.tracer.user)
    return {"my": my_project_list, "join": join_project_list}
# 2.在相应的模板中创建inclusion/all_project_list.html
<ul class="nav navbar-nav">
    <li class="dropdown active">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
           aria-expanded="false"><span class="glyphicon glyphicon-th-list" aria-hidden="true"></span> 项
            目<span class="caret"></span></a>
        <ul class="dropdown-menu">
            {% if my %}
                <li><i class="fa fa-user-circle" aria-hidden="true"></i> 我创建的</li>
                <li role="separator" class="divider"></li>
                {% for item in my %}
                    <li><a href="#">{{ item.name }}</a></li>
                {% endfor %}
                <li role="separator" class="divider"></li>
            {% endif %}

            {% if join %}
                <li><i class="fa fa-users" aria-hidden="true"></i> 我参与的</li>
                {% for item in join %}
                    <li><a href="#">{{ item.project.name }}</a></li>
                {% endfor %}
                <li role="separator" class="divider"></li>
            {% endif %}

            <li><a href="{% url 'project_list' %}">所有项目</a></li>
        </ul>
    </li>
</ul>
# 3.在manage.py母板中去运用
	{% load project %}
	{% all_project_list request %}

image

2.进入项目

路由分化:不同的页面对应的路由不同
/manage/项目ID/dashboard
/manage/项目ID/issues
/manage/项目ID/statistics
/manage/项目ID/file
/manage/项目ID/wiki
/manage/项目ID/setting

image

创建manage.py视图函数:from django.shortcuts import HttpResponse,render,redirect

def dashboard(request,project_id):
    return render(request,"dashboard.html")

def issues(request,project_id):
    return render(request,"issues.html")

def statistics(request,project_id):
    return render(request,"statistics.html")

def file(request,project_id):
    return render(request,"file.html")

def wiki(request,project_id):
    return render(request,"wiki.html")

def setting(request,project_id):
    return render(request,"setting.html")

在template创建他们各自的模板
在模板project_list中渲染引用
image

2.1 进入项目菜单展示

2.1.1 判断是否进入项目
判断url是否是以manage开头
project_id是我创建的 or 是我参与的
在中间件【auth.py】中去判断,最后把返回的项目可以封装到Tracer中

class Tracer(object):
    def __init__(self):
        self.user = None
        self.price_policy = None
        self.project = None

image

前端模板[manage.py]中:
image

这样我们在访问我们创建的 或者 我们参与的 就可以显示出项目所对应出现的版头,并且不能去访问别人的项目

推荐:如果大家有不了解的参数信息,可以到菜鸟去查看哦

标签:09,项目,list,manage,request,project,html,Day,def
From: https://www.cnblogs.com/cool-bo/p/17385519.html

相关文章

  • 在PhpStorm项目工具窗口中显示.idea文件夹
    转自:https://www.codenong.com/33010238/ 对于.idea,它也有专用的注册表设置(默认情况下,我至少在PhpStorm中启用了此设置)Help|FindAction...并查找registry(或在Windows上使用默认键盘映射通过Maintenance Ctrl+Alt+Shift+/)进入内部-查找projectView.hide.dot.idea条......
  • 项目Redis缓存设计心得体会
    1,列表类缓存比如一些列表类的缓存,如果列表是跟用户无关的,可以直接对查询的列表进行缓存,比如省份列表、菜单列表等。但是如果列表里面有跟用户相关的属性,比如文档的卡片列表里有用户是否下载过,设计缓存需要注意,可以将用户无关的卡片列表组装后进行缓存,上面的【已下载】【......
  • 三层架构——IDEA项目部署
    一、前提:1、数据库部署2、Tomcat设置3、数据库添加 二、步骤:1、创建maven模块(设置Name,修改Groupld)2、转为web版本(JBLJavaToWeb),添加依赖pom.xml——依赖(素材包中)3、导入素材webapp——webapp(素材包中)4、创建包结构javacom.域名domain实体类包......
  • Apache DolphinScheduler 开源之夏学生项目申请开启,6 大课题等你来拿万元奖金!
    开源之夏2023学生报名已经正式开启!ApacheDolphinScheduler今年继续参与开源之夏的活动,2023年4月29日-6月3日15:00UTC+8,同学们可以在开源之夏官网https://summer-ospp.ac.cn/找到ApacheDolphinScheduler下的项目,挑选自己感兴趣的课题,通过项目相对应导师联系方......
  • HBuilder 云打包 Android 项目
    一、配置manifest.json参数应用名称 appid 版本号  页面入口 这几个必填项填好  配置桌面显示的图标  配置启动时显示的图片 二、云打包发行->云打包-打原生安装包 这两个广告部分,若不需要可取消 等一会,大约几分钟后,就打包成功。点打开下载......
  • 创建vue3项目 @符号提示
    1、新建jsconfig.json如何配置以下内容即可提示{"compilerOptions":{"baseUrl":"./","paths":{"@/*":["src/*"]}}}2、实际上面配置只是联想提示作用,需要在vue.config.js或vite.config......
  • Day01 Markdown学习
    Markdown学习标题三级标题四级标题字体两边加星号变粗体两边一个星号变斜体一个星两个星斜体加粗两边两个波浪号删除线引用一个>符号出引用效果分割线三个减号三个星号图片![截图](C:\Users\GE62\Pictures\CameraRoll\002.jpg)超链接点击跳转到狂神说JAVA......
  • 异步电机的旋转高频电压注入算法FOC,全套C代码+仿真模型,已经在实际的工程项目项目中加
    异步电机的旋转高频电压注入算法FOC,全套C代码+仿真模型,已经在实际的工程项目项目中加以应用:1.在定子电压的两相同步静止坐标系(α,β轴)下注入旋转高频电压,然后通过转子位置观测器实现转子机械转速与转子磁链电角度的精确估算;2.能够实现电机低速段带重载运行工况下的高精度无传感器......
  • Linux系统上创建.NET6项目(通过命令行(CTL)方式)
    前言平时大家创建项目基本上都是借助开发工具创建,比如visualstudio,visualstudiocode,今天我们在Linux系统上,通过命令行的形式创建.NET6项目。版本介绍系统版本:Ubuntu22.04SDK版本:.NET6安装.NET环境#升级系统sudoapt-getupdate#找到.NET6sudoaptsearch.net6第......
  • 用go设计开发一个自己的轻量级登录库/框架吧(项目维护篇)
    用go设计开发一个自己的轻量级登录库/框架吧(项目维护篇)本篇将开始讲讲开发库/框架的最开始阶段,也就是搭建一个项目源码:weloe/token-go:alightloginlibrary(github.com)项目结构项目结构,不是上一篇所说的代码架构,而是分包,明确的分包更有助于我们的开发。本框架分包如下......