簡體   English   中英

Django管理面板MEDIA_URL和數據庫URL

[英]Django admin panel MEDIA_URL and db url

我已經將網站從服務器移植到另一天前。 現在,我需要完成端口,在新服務器中更新數據庫。

我已經做到了,但出現一個奇怪的錯誤。 它沒有顯示圖像。

在數據庫中,圖像字段包含https://www.domain.ext/media/uploads/homepage/image_name.jpg但在管理面板中,URL不是這樣的,就像MEDIA_URL (在settings.py文件中設置)和數據庫中的圖片字段,因此,如果將MEDIA_URL設置為https://www.domain.ext/media/ ,則在管理面板的圖片字段中,我將看到https://www.domain.ext/media/https://www.domain.ext/media/uploads/folder/image_name.jpg

我試圖手動修改db中的鏈接,僅/uploads/folder/image_name.jpg ,刷新了管理頁面,看起來還可以,但是保存后,又是一次錯誤的形式。

誰這么善良地向我解釋原因,以及如何進行管理?

編輯:

Django版本是1.2.5

我看到的另一個問題是,如果MEDIA_URLhttpMEDIA_URL其行為與我所解釋的相同。 如果有https則網址變為/https:/www. ...etc... /https:/www. ...etc... 對於后者,我嘗試將u放在MEDIA_URL字符串之前,例如MEDIA_URL = u"text"但是它不起作用。

終於我有了問題!

問題出在filebrowser模塊中。

filebrowser/functions.py有一個名為url_join的方法,其定義如下:

def url_join(*args):
"""
URL join routine.
"""

if args[0].startswith("http://"):
    url = "http://"
else:
    url = "/"
for arg in args:
    arg = arg.replace("\\", "/")
    arg_split = arg.split("/")
    for elem in arg_split:
        if elem != "" and elem != "http:":
            url = url + elem + "/"
# remove trailing slash for filenames
if os.path.splitext(args[-1])[1]:
    url = url.rstrip("/")
return url

我只是在有http s地方添加了s ,所以現在它是https且可以使用。 它在db中寫入正確的內容,並且還以正確的方式呈現url。

感謝大家的幫助! :)

編輯:

祝大家聖誕節快樂! :)

暫無
暫無

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

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