簡體   English   中英

基於Django類的視圖-直接將URL指向類中的特定方法

[英]Django class based views - Direct url to particular method in class

我使用基於函數的視圖已有相當長的一段時間了,但是直到現在為止我從未使用過基於類的視圖。 我當前的項目需要跨多個視圖的許多通用代碼,因此我正在探索基於類的視圖,以便可以使用繼承。

我的要求是將url定向到類中的特定函數。 類似於可以在django admin上完成的操作。 在Django admin中,我在從ModelAdmin繼承的類中使用了get_urls方法,以將url指向類方法。

def get_urls(self):
    try:
        from django.conf.urls.defaults import patterns, url

        urls = super(MyModelAdmin, self).get_urls() 

        my_urls = patterns('',
                       url(r'^myurl/(?P<obj_id>\d+)/$',
                           self.admin_site.admin_view(self.myFunction),
                           name="my_function"),
                         )

        return my_urls + urls
    except Exception, e:
        logger.error(e)

myFunction方法只是在views.py中調用一個方法,並傳遞請求對象和對象ID。 我的文檔在這里

是否可以對基於類的視圖做類似的事情? 從到目前為止的搜索中,我找不到任何文檔,該文檔顯示了將函數指針傳遞給as_view方法(我們可以執行admin_view方法的方式)的admin_view 請指導我或指向正確的文檔。

由於歷史原因,管理員視圖與Django基於類的其余視圖非常不同,因此將實現從一個遷移到另一個可能很棘手。

常規CBV旨在連接到特定的url模式,它們並非旨在將不同的url分配給不同的視圖,因此實現get_urls方法實際上沒有任何意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM