[英]Django path to uploaded image
學習Django之后,我想建立一個可供人們上傳圖片的網站。 整個帳戶應用程序(創建帳戶,更改密碼等)已完成,現在我必須創建一個允許用戶上載圖像的應用程序。 我現在發現自己正在編寫最終模板,但是我不知道如何指定保存圖片的路徑。
我創建了一個Image模型,將用戶提供的圖像文件保存到/ media / images目錄中,如下所示: image = models.ImageField(upload_to='images')
。
用戶必須填寫的表格是:
class ImagePost(forms.ModelForm):
class Meta:
model = Image
fields = ('image','description','title')
因此,他必須提供圖像,描述和標題(描述和標題是Image模型類的另外2個屬性。
這是處理邏輯部分的視圖:
@login_required
def image_create(request):
if request.method == 'POST':
# form is sent
form = ImagePost(data=request.POST)
if form.is_valid():
# form data is valid
cd = form.cleaned_data
new_item = cd.save(commit=False)
# assign current user to the item
new_item.user = request.user
new_item.save()
# redirect to new created item detail view
return render(request,
'images/all_images.html',
{'new_item': new_item})
else:
# build form with data provided by the bookmarklet via GET
form = ImagePost(data=request.GET)
return render(request,
'images/image/create.html',
{'section': 'images',
'form': form,
})
最后,處理表單的模板當前如下所示:
{% extends "base.html" %}
{% block title %}Post an image{% endblock %}
{% block content %}
<h1>Post an image</h1>
<form action="." method="post">
{{ form.as_p }}
{% csrf_token %}
<input type="submit" value="Post it!">
</form>
{% endblock %}
用戶上載圖片時,現在位於我的media / images目錄中的文件名與用戶PC上的文件名相同。
如何找到該名稱,以便可以指定Django顯示哪個文件? 還是有一種方法可以重命名文件,使其與用戶引入的標題匹配?
<img src="media/images/WHAT_IS_YOUR_NAME" class="image-preview">
只需使用<img src="{{ image.image.url }}" class="image-preview">
其中image
是Image
模型的實例,第二個image
是Image
的模型字段,而url
是ImageField
對象的屬性。 在此處更多內容,列出項目3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.