2015-06-08 118 views
0

我需要用django創建圖像上傳,問題是,django總是保存在一個全局項目(稱爲linkdump)文件夾中,我想將它保存在項目文件夾(linktracker)上。上傳的django cutom圖像名稱

setting.py:

STATIC_URL = '/static/' 

模型:

class Link(models.Model): 
    link_description = models.CharField(max_length=200) 
    link_url = models.CharField(max_length=200) 
    link_image = models.ImageField(upload_to= './static/') 

    def __str__(self): 
     return self.link_description 

    class Admin: 
     pass 
現在

在視圖中:

<img src="{% static link.link_image %}" alt="{{ link.link_description }}"> 

它返回

http://127.0.0.1:8000/static/static/o-BLUE-LIGHT-SLEEP-facebook.jpg 

,上載位於項目文件夾(鏈接轉儲)中,而不是在應用程序內。

+0

嘗試設置STATICFILES_DIRS。 – Wtower

回答

1

您可以指定一個函數返回一個自定義路徑爲ImageField的:

def get_upload_path(instance, filename): 
    return 'your/custom/path/here' 

class Link(models.Model): 
    . . . 
    link_image = models.ImageField(upload_to=get_upload_path) 

現在你可以使用來自模型實例建立上傳到路徑。

此外,您不希望使用{%static%}模板標籤來指定圖像的路徑。您只需使用該字段的.url屬性:

<img src="{{ link.link_image.url }}" alt="{{ link.link_description }}" />