Django源代碼寫DetailView與ListView

基于類的通用視圖 - 展平索引

通用顯示視圖
以下兩個通用的基于類的視圖旨在顯示數據。在許多項目中,它們通常是最常用的視圖。

一、DetailView

? ? ? ?django.views.generic.detail.DetailView
在執行此視圖時,self.object將包含視圖正在操作的對象。


此視圖從以下視圖繼承方法和屬性:

  1. django.views.generic.detail.SingleObjectTemplateResponseMixin

  2. django.views.generic.base.TemplateResponseMixin

  3. django.views.generic.detail.BaseDetailView

  4. django.views.generic.detail.SingleObjectMixin

  5. django.views.generic.base.View

示例myapp / views.py:

class BlogDetailView(DetailView):model = Blogdef get_context_data(self, **kwargs):context = super().get_context_data(**kwargs)context['date'] = timezone.now()blog =Blog.objects.all().first()context['title'] = blog.b_titlecontext['content'] = blog.b_contentreturn context

示例myapp / urls.py:

url('blogsdetail/(?P<pk>\d+)/', views.BlogDetailView.as_view(), name='blog-detail'),

示例myapp / article_detail.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1> 文章詳情  </h1><p>博客標題: {{ title }}</p>
<p>博客內容: {{ content }}</p>
<p>Date: {{ date }}</p>
</body>
</html>

二、ListView

django.views.generic.list.ListView
表示對象列表的頁面。

在執行此視圖時,self.object_list將包含視圖正在操作的對象列表(通常但不一定是查詢集)。


此視圖從以下視圖繼承方法和屬性:

  1. django.views.generic.list.MultipleObjectTemplateResponseMixin

  2. django.views.generic.base.TemplateResponseMixin

  3. django.views.generic.list.BaseListView

  4. django.views.generic.list.MultipleObjectMixin

  5. django.views.generic.base.View

示例views.py:

class BlogListView(ListView):template_name = 'Blogs.html'model = Blog

示例myapp / urls.py:

url(r'^blogs/', views.BlogListView.as_view()),

示例myapp / article_list.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>博客列表</title>
</head>
<body><h2>今日熱門</h2><ul>{% for blog in blog_list %}<li><a href="{% url 'app:blog-detail'  blog.id %}">{{ blog.b_title }}</a>{{ blog.b_content }}</li>{% endfor %}</ul></body>
</html>

?

如果您正在使用分頁,則可以從分頁文檔中調整示例模板。contacts將該示例模板中的實例更改 為page_obj。

類django.views.generic.list.BaseListView
用于顯示對象列表的基本視圖。它不是直接使用,而是作為django.views.generic.list.ListView表示對象列表的其他視圖的父類 。

此視圖從以下視圖繼承方法和屬性:

django.views.generic.list.MultipleObjectMixin
django.views.generic.base.View
方法

get(請求,* args,** kwargs)
添加object_list到上下文。如果 allow_empty 為True則顯示空列表。如果 allow_empty為False,則引發404錯誤

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456271.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456271.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456271.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開源商務智能軟件Pentaho

1 簡介Pentaho是世界上最流行的開源商務智能軟件,以工作流為核心的&#xff0c;強調面向解決方案而非工具組件的&#xff0c;基于java平臺的商業智能(Business Intelligence,BI)套件BI&#xff0c;之所以說是套件是因為它包括一個web server平臺和幾個工具軟件&#xff1a;報表…

chrome用type=file獲取圖片路徑并轉base64字符串

1 html頁面 <div class"col-sm-2" style"height: 200px;margin-top: 14px;"> <input id"photo" name" " type"file" value"選擇圖片" ng-model"photoUrl"> <input type"button&qu…

Python - Django - 中間件 process_exception

process_exception(self, request, exception) 函數有兩個參數&#xff0c;exception 是視圖函數異常產生的 Exception 對象 process_exception 函數的執行順序是按照 settings.py 中設置的中間件的順序的倒序執行 process_exception 函數只在視圖函數中出現異常的時候才執行…

NTV Media Server G3性能測試

Hello&#xff01;大家好&#xff0c;我是資深測試工程師Jackie&#xff0c;今天我來和大家一起對云視睿博的高性能流媒體服務器NTV Media Server G3做一次性能測試。今天測試有一個小目標&#xff0c;那就是驗證在一臺普通的PC機上&#xff0c;NTV Media Server G3的并發能力是…

人生不只是上坡路

從前的自己都是非常順利的&#xff0c;覺得自己有一天一定可以成就一番事業。 可是誰也預料不到這幾年的變化&#xff0c; 似乎人生就要跌落到了谷底&#xff0c; 不知道該如何去面對&#xff0c; 壓力很大、惶恐不安、不知道未來的路該如何去走。 人生不只是上坡路&#xff0c…

Django 時間與時區設置問題

Django 時間與時區設置問題 在Django的配置文件settings.py中&#xff0c;有兩個配置參數是跟時間與時區有關的&#xff0c;分別是TIME_ZONE和USE_TZ 如果USE_TZ設置為True時&#xff0c;Django會使用系統默認設置的時區&#xff0c;即America/Chicago&#xff0c;此時的TIME_…

Oracle+ASM單機環境下,開啟歸檔的最簡單的方法

在ASM單機環境下&#xff0c;開啟歸檔的最簡單的方法。環境&#xff1a;oracle11g 11.2.0.4 登陸sqlplus[oracleudevasm ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Thu Jun 8 18:20:41 2017Copyright (c) 1982, 2013, Oracle. All rights reserved…

【Python】 配置解析ConfigParser 命令行參數解析optparser

ConfigParser ConfigParser包裝了配置文件的讀取和寫入&#xff0c;使得python程序可以更加輕松操作配置文件了。這里的配置文件是指.ini的那種文件&#xff0c;基本格式如下 [section_a] a_key1 a_value1 a_key2 a_value2[section_b] b_key1 b_value1 b_key2 b_value2 b_k…

解決:build_attrs() takes at most 2 arguments (3 given)

1.這個原因是由于captcha版本安裝太低引起的&#xff0c;所以導致register頁面打開報錯 2.解決辦法就是安裝更高級版本的captcha 解決pip install django-simple-captcha0.5.5

docker registry v2與harbor的搭建

docker的倉庫 1 registry的安裝 docker的倉庫我們可以使用docker自帶的registry,安裝起來很簡單&#xff0c;但是可能有點使用起來不是很方便。沒有圖形化。 開始安裝 1 使用鏡像加速器 2 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://dc945b6d.m…

在windows下安裝Redis

一、下載windows版本的Redis 由于官網上沒有windows版的下載地址&#xff0c;所以需要下載windows版本的Redis有以下兩個地址&#xff1a; 博主的csdn資源地址&#xff1a;http://download.csdn.net/detail/u010608551/9778240 github下載地址&#xff1a;https://github.com/M…

Django REST framework【學習內容】

快速入門 我們將創建一個簡單的允許管理員用戶查看和編輯系統中的用戶和組的API。 項目設置 創建一個名為 tutorial 的新django項目&#xff0c;然后啟動一個名為 quickstart 的新app。 # 創建項目目錄 mkdir tutorial cd tutorial# 創建一個virtualenv來隔離我們本地的包依…

DotNetCore跨平臺~發布腳本PowerShell的設計

回到目錄 這幾天對PS情有獨忠&#xff0c;被它的強大功能所希引&#xff0c;它可以快速部署&#xff0c;快速發布&#xff0c;將一些連帶的動作一次的完成&#xff0c;挺方便&#xff0c;類似于早期的bat文件&#xff0c;也像linux平臺的bash腳本&#xff0c;但功能上&#xff…

解決: 'Cannot call `.is_valid()` as no `data=` keyword argument was ' AssertionError: Cannot call `

#注冊 def add_person(request):p_name request.POST.get("p_name")p_password request.POST.get("p_password")person_data {"p_name": p_name,"p_password": p_password,}print(person_data)serializer PersonSerializer(person…

軟件與程序

一、Java的起源 最初是為家用電器設計的&#xff0c;因為其特點適合于internet&#xff0c; 于是通過internet成為一種計算語言&#xff0c;一個平臺&#xff0c;一個網絡計算的架構。 二、Java平臺分類 ①JavaSE適用于普通PC及筆記本電腦&#xff0c;為其他JAVA程序的開發和運…

Django使用n內置模塊發送HTML格式的郵件

def send(request):# subject "小伙子很帥"# message "不禁夸啊"# send_mail(subject,message,"18332191389163.com",["18332191389163.com"])# return HttpResponse("ok")from django.core.mail import EmailMultiAltern…

EDM營銷之如何使郵件列表更加有效

營銷轉化往往是營銷人員專攻的必修課&#xff0c;大數據時代&#xff0c;只有真實有效的活躍用戶數據&#xff0c;才能進一步促進轉化。但仍然有想走捷徑的企業會選擇通過購買來獲取用戶數據&#xff0c;不僅數據質量不高&#xff0c;還會降低自身信譽等級。本次Focussend從購買…

spring用的很開心的標簽(隨時增加)

1Scheduled定時任務標簽&#xff0c;cron用表達式&#xff0c;或者其他幾種方式&#xff0c;方便不能說。使用再方法智商&#xff0c;不能設置范圍域。 2PropertySource定義在整個class文件上&#xff0c;整個class中可以直接用表達式獲取properties的內容。 3Value 定義在變量…

Flask-DebugToolbar的配置

該擴展為 Flask 應用程序添加了一個包含有用的調試信息的工具欄。 安裝 簡單地使用 pip 來安裝: $ pip install flask-debugtoolbar用法 設置調試工具欄是簡單的: from flask import Flask from flask_debugtoolbar import DebugToolbarExtensionapp Flask(__name__)# the…

微信第三方登錄

微信第三方登錄&#xff1a; 公眾平臺以access_token為接口調用憑據&#xff0c;來調用接口&#xff0c;所有接口的調用需要先獲取access_token&#xff1b; 網頁授權獲取用戶基本信息&#xff1a;通過該接口&#xff0c;可以獲取用戶的基本信息&#xff08;獲取用戶的OpenID是…