最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django admin 添加自定義鏈接方式

 更新時間:2020年03月11日 14:00:15   作者:安布奇  
這篇文章主要介紹了django admin 添加自定義鏈接方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

背景

最近做項目開發(fā)出現(xiàn)一個需求,就是前端會發(fā)來用戶對某一項內(nèi)容的報錯,報錯信息中包含出錯內(nèi)容的id,為了方便管理,需要實現(xiàn)點擊這個id直接轉(zhuǎn)達相應(yīng)內(nèi)容的詳情頁面。

效果展示

解決

首先在django admin的列表中查看數(shù)據(jù)id所代表的鏈接

使用瀏覽器的檢查元素功能查看點擊該id所跳轉(zhuǎn)的鏈接

現(xiàn)在我們知道點擊admin頁面跳轉(zhuǎn)鏈接的格式了。

自定義widget

假如我們的內(nèi)容id使用CharField字段存儲,那么可以這樣自定義一個widget

HTML

{% load myfileter %}
<a href="{{ widget.value|generate_link }}" rel="external nofollow" >{{ widget.value }}</a>

{%load myfilter%}是引入自定義模板標(biāo)簽的語句,該標(biāo)簽在下面定義。

python

class MyWidget(TextInput):
  template_name = "myWidget.html"
  def render(self, name, value, attrs=None, renderer=None):
    context = self.get_context(name, value, attrs)
    template = loader.get_template(self.template_name).render(context)
    return mark_safe(template)

自定義模板過濾器

在views.py所在的目錄下新建一個文件夾templatetags,注意必須為這個名字。在文件夾中新建一個myfileter.py文件和_init_.py文件。

myfileter.py

# 生成自定義鏈接
@register.filter
def generate_link(value):
  id = str(value)
  #就是將第二張圖片中的id替換為當(dāng)前的id就行
  return "/admin/learningsource/learningsource/" + id + "/change/"

自定義模型表單

假如我們的模型定義如下

class FeedbackModel(models.Model):
  error_content_id=models.UUIDField("錯誤編號", primary_key=True, default=uuid.uuid4())
  ........

在models.py中定義一個ModelForm

class FeedbackModelForm(ModelForm):
  error_content_id = forms.CharField(label="錯誤編號",widget=MyWidget)

  class Meta:
    model = SourceLinkErrorReport
    fields = ['error_content_id',.....]

假如該模型在admin.py的模型管理器為

class FeedbackModelAdmin(admin.ModelAdmin):
..........

將上述定義的模型表單添加到模型管理器中

class FeedbackModelAdmin(admin.ModelAdmin):
form=FeedbackModelForm
..........

總結(jié)

使用這種方法可以不用創(chuàng)建一個空的模型然后重寫它的changelist_view函數(shù)實現(xiàn)自定義鏈接,可以給admin界面的文字,圖片等添加鏈接(通過自定義widget就可實現(xiàn)),并且鏈接樣式可以自己定義,使用更方便。

在安全性上,本文的做法實際上相當(dāng)于自己手動給django admin內(nèi)置視圖函數(shù)發(fā)送請求,和原來django自己自動生成的頁面鏈接沒有任何區(qū)別,對自定義鏈接的響應(yīng)實際上也要經(jīng)過**django ** admin的認證,安全性是沒問題的。

以上這篇django admin 添加自定義鏈接方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 使用事件對象asyncio.Event來同步協(xié)程的操作

    python 使用事件對象asyncio.Event來同步協(xié)程的操作

    這篇文章主要介紹了python 使用事件對象asyncio.Event來同步協(xié)程的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python?ES連接服務(wù)器的方法詳解

    python?ES連接服務(wù)器的方法詳解

    使用Python連接Elasticsearch服務(wù)器進行數(shù)據(jù)搜索和分析是一項常見操作,本文詳細介紹了如何使用elasticsearch-py客戶端庫連接到Elasticsearch服務(wù)器,并執(zhí)行創(chuàng)建索引、添加文檔及搜索等基本操作
    2024-10-10
  • Django項目中包含多個應(yīng)用時對url的配置方法

    Django項目中包含多個應(yīng)用時對url的配置方法

    今天小編就為大家分享一篇Django項目中包含多個應(yīng)用時對url的配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 三步教會你完全離線搭建openwebui

    三步教會你完全離線搭建openwebui

    這篇文章主要介紹了在無網(wǎng)絡(luò)環(huán)境下搭建Linux版openwebui的詳細步驟,包括下載依賴包、拷貝whl包到無網(wǎng)絡(luò)環(huán)境進行安裝、解決安裝過程中可能出現(xiàn)的問題,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • python如何實現(xiàn)全角半角的相互轉(zhuǎn)換

    python如何實現(xiàn)全角半角的相互轉(zhuǎn)換

    這篇文章主要介紹了python如何實現(xiàn)全角半角的相互轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 用Python實現(xiàn)給Word文檔蓋章

    用Python實現(xiàn)給Word文檔蓋章

    大家好,本篇文章主要講的是用Python實現(xiàn)給Word文檔蓋章,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Django admin model 漢化顯示文字的實現(xiàn)方法

    Django admin model 漢化顯示文字的實現(xiàn)方法

    今天小編就為大家分享一篇Django admin model 漢化顯示文字的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python如何實現(xiàn)反向迭代

    python如何實現(xiàn)反向迭代

    這篇文章主要為大家詳細介紹了python如何實現(xiàn)反向迭代,進行反向迭代,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Django批量向admin注冊模型方法詳解

    Django批量向admin注冊模型方法詳解

    這篇文章主要為大家介紹了Django批量向admin注冊模型方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Pygame Time時間控制的具體使用詳解

    Pygame Time時間控制的具體使用詳解

    pygame.time 時間控制模塊,是 Pygame 中使用頻率較高的模塊,其主要功能是管理時間和游戲幀數(shù)率,本文就來詳細的介紹一下,感興趣的可以了解一下
    2021-11-11

最新評論

方山县| 虎林市| 湘潭市| 密云县| 巴南区| 临澧县| 惠东县| 仪征市| 兰坪| 三明市| 饶河县| 军事| 托克逊县| 惠东县| 东山县| 杨浦区| 伊宁县| 临清市| 怀宁县| 赤城县| 祁阳县| 承德市| 新泰市| 富蕴县| 瑞昌市| 中卫市| 桃源县| 乌恰县| 通城县| 刚察县| 泰来县| 镇原县| 万州区| 报价| 大余县| 惠东县| 琼结县| 盱眙县| 鄂州市| 乐山市| 红河县|