❶ 如何在Django管理外鍵過濾器list
將 list_filter 中的外鍵欄位改為 foreign_key__related_fieldname 這種形式就可以了。 這種用法專適用於屬 ForeignKey 及 ManyToManyField 。
❷ 怎麼Django標簽過濾
1.創建一個模板庫
使用模板過濾器的時候,直接把過濾器寫在app里,
例如:在app里新建一個templatetags的文件夾,這個目錄應當和 models.py 、 views.py 等處於同一層次。例如:
books/
__init__.py
models.py
templatetags/
views.py
在 templatetags 中創建兩個空文件:一個 __init__.py (告訴Python這是一個包含了Python代碼的包)和一個用來存放你自定義的標簽/過濾器定義的文件。第二個文件的名字稍後將用來載入標簽。例如,如果你的自定義標簽/過濾器在一個叫作 poll_extras.py 的文件中,你需要在模板中寫入如下內容: {% load poll_extras %}
{% load %}標簽檢查 INSTALLED_APPS 中的設置,僅允許載入已安裝的Django應用程序中的模板庫。
要成為有效的標簽庫,模塊必須包含一個模塊級的變數: register ,這是一個 template.Library 的實例。這個 template.Library 實例是包含所有已注冊的標簽及過濾器的數據結構。因此,在模塊的頂部位置插入下述代碼:
fromdjangoimport template
register = template.Library()
❸ django中怎麼設置單個session的失效時間
set_expiry(value):設置cookie的有效期。可以傳遞不同類型的參數值:
• 如果值是一個整數,session將在對應的秒數後失效。例如request.session.set_expiry(300) 將在300秒後失效.
• 如果值是一個datetime或者timedelta對象, 會話將在指定的日期失效
• 如果為0,在用戶關閉瀏覽器後失效
• 如果為None,則將使用全局會話失效策略
失效時間從上一次會話被修改的時刻開始計時。
詳細參考:劉江的django教程
❹ Django model update(修改) 修改時間並沒有觸發的問題
我們都知道 django 裡面模型設計 一般會有常用的兩個欄位 創建時間 和 修改時間,這兩個欄位的定義是這樣的:
一般來說,你對這個表的數據有修改的時候,修改時間會隨之變動,但是我遇到一個情況,是即使你修改了這條數據的內容,但是修改時間並沒有變動。
問題解決:
修改更新有兩種方法
1)save
修改模型類對象的屬性,然後執行save()方法
2)update
使用模型類.objects.filter().update(),會返回受影響的行數
第一種修改更新的方法是會觸發updated = models.DateTimeField(auto_now=True, verbose_name="更新時間")欄位的更新時間的,第二種不會觸發。
所以如果你更新的數據沒有觸發更新時間,檢查是否用了第二種方法,換成第一種修改的方式就可以了。
解決:
如果要用 update 這種方法修改多條數據,觸發更新時間的欄位,可以這樣做:
加一條修改數據,把修改時間這個欄位修改成當前時間就可以了。
❺ django中怎麼自定義過濾器
在某個app下創建一個名為templatetags(必需,且包名不可變)的包。假設我們在名為polls的app下創建了一個templatetags的包,並在該包下創建了一個名為mytags的文件。那麼目錄結構看起來應該就像這樣:
polls/
__init__.py
models.py
templatetags/
__init__.py
mytags.py
views.py
❻ 用django定義自動插入的時間顯示格式怎麼調
在模板中可以使用time和date過濾器格式化時間,如:{{ example_date | date:」F
j, Y」 }}。
可以在settings里定義DATE_FORMAT,默認值為 'N j, Y';定義DATETIME_FORMAT,默認值是 'N j, Y, P',定義TIME_FORMAT,默認值為'P'。
如果這些都還不能夠滿足需求,那麼就寫一個自定義模板過濾器,或者在模型中定義一個新方法。
❼ django 過濾器 什麼意思
關於django過濾器,
過濾器,變數的顯示形式的改變
一、形式:小寫
{{ name | lower }}
二、串聯:先轉義文本到HTML,再轉換每行到 <p> 標簽
{{ my_text|escape|linebreaks }}
三、過濾器的參數
顯示前30個字
{{ bio | truncatewords:"30" }}
格式化
{{ pub_date | date:"F j, Y" }}
過濾器列表
{{ 123|add:"5" }} 給value加上一個數值
{{ "AB'CD"|addslashes }} 單引號加上轉義號,一般用於輸出到javascript中
{{ "abcd"|capfirst }} 第一個字母大寫
{{ "abcd"|center:"50" }} 輸出指定長度的字元串,並把值對中
{{ "123spam456spam789"|cut:"spam" }} 查找刪除指定字元串
{{ value|date:"F j, Y" }} 格式化日期
{{ value|default:"(N/A)" }} 值不存在,使用指定值
{{ value|default_if_none:"(N/A)" }} 值是None,使用指定值
{{ 列表變數|dictsort:"數字" }} 排序從小到大
{{ 列表變數|dictsortreversed:"數字" }} 排序從大到小
{% if 92|divisibleby:"2" %} 判斷是否整除指定數字
{{ string|escape }} 轉換為html實體
{{ 21984124|filesizeformat }} 以1024為基數,計算最大值,保留1位小數,增加可讀性
{{ list|first }} 返回列表第一個元素
{{ "ik23hr&jqwh"|fix_ampersands }} &轉為&
{{ 13.414121241|floatformat }} 保留1位小數,可為負數,幾種形式
{{ 13.414121241|floatformat:"2" }} 保留2位小數
{{ 23456 |get_digit:"1" }} 從個位數開始截取指定位置的1個數字
{{ list|join:", " }} 用指定分隔符連接列表
{{ list|length }} 返回列表個數
{% if 列表|length_is:"3" %} 列表個數是否指定數值
{{ "ABCD"|linebreaks }} 用新行用<p> 、 <br /> 標記包裹
{{ "ABCD"|linebreaksbr }} 用新行用<br /> 標記包裹
{{ 變數|linenumbers }} 為變數中每一行加上行號
{{ "abcd"|ljust:"50" }} 把字元串在指定寬度中對左,其它用空格填充
{{ "ABCD"|lower }} 小寫
{% for i in "1abc1"|make_list %}ABCDE,{% endfor %} 把字元串或數字的字元個數作為一個列表
{{ "abcdefghijklmnopqrstuvwxyz"|phone2numeric }} 把字元轉為可以對應的數字??
{{ 列表或數字|pluralize }} 單詞的復數形式,如列表字元串個數大於1,返回s,否則返回空串
{{ 列表或數字|pluralize:"es" }} 指定es
{{ 列表或數字|pluralize:"y,ies" }} 指定ies替換為y
{{ object|pprint }} 顯示一個對象的值
{{ 列表|random }} 返回列表的隨機一項
{{ string|removetags:"br p div" }} 刪除字元串中指定html標記
{{ string|rjust:"50" }} 把字元串在指定寬度中對右,其它用空格填充
{{ 列表|slice:":2" }} 切片
{{ string|slugify }} 字元串中留下減號和下劃線,其它符號刪除,空格用減號替換
{{ 3|stringformat:"02i" }} 字元串格式,使用Python的字元串格式語法
{{ "E<A>A</A>B<C>C</C>D"|striptags }} 剝去[X]HTML語法標記
{{ 時間變數|time:"P" }} 日期的時間部分格式
{{ datetime|timesince }} 給定日期到現在過去了多少時間
{{ datetime|timesince:"other_datetime" }} 兩日期間過去了多少時間
{{ datetime|timeuntil }} 給定日期到現在過去了多少時間,與上面的區別在於2日期的前後位置。
{{ datetime|timeuntil:"other_datetime" }} 兩日期間過去了多少時間
{{ "abdsadf"|title }} 首字母大寫
{{ "A B C D E F"|truncatewords:"3" }} 截取指定個數的單詞
{{ "<a>1<a>1<a>1</a></a></a>22<a>1</a>"|truncatewords_html:"2" }} 截取指定個數的html標記,並補完整
<ul>{{ list|unordered_list }}</ul> 多重嵌套列表展現為html的無序列表
{{ string|upper }} 全部大寫
<a href="{{ link|urlencode }}">linkage</a> url編碼
{{ string|urlize }} 將URLs由純文本變為可點擊的鏈接。(沒有實驗成功)
{{ string|urlizetrunc:"30" }} 同上,多個截取字元數。(同樣沒有實驗成功)
{{ "B C D E F"|wordcount }} 單詞數
{{ "a b c d e f g h i j k"|wordwrap:"5" }} 每指定數量的字元就插入回車符
{{ boolean|yesno:"Yes,No,Perhaps" }} 對三種值的返回字元串,對應是 非空,空,None
❽ Django中國社區的時間過濾器是怎麼做的
這是我寫的來一個,但我源覺得後面的有個中文的前,不太好,可以修改下不?
# -*- coding: utf-8 -*-
from django import template
from django.utils.timesince import timesince
from django.utils import formats
from django.utils.dateformat import format, time_format
from django.utils import timezone
register = template.Library()
@register.filter(expects_localtime=True, is_safe=False)
def weetimesince(value, arg=None):
if value is None:
return ''
❾ 問一下django 的 時間/ID 這樣傳遞兩個參數的正則url 怎麼寫 詳情..
url捕獲時間,傳遞到views里,根據時間查詢資料庫,然後返回到頁面,是這樣一個流程嗎?
❿ Django過濾器truncateword和slice的區別
truncate會在後面加省略號,一般用於文本太長的省略。
slice是對列表,實際是數據截取版,一般用於數據做操作,當權然後面沒有.....
具體到你的truncateword,省略的是詞,和截取字元串差距很大。