[英]Django Image Upload in Database Absolute Path Rather Than Relative
我的模特:
class MedicineType(models.Model):
name = models.CharField(max_length=100)
image = models.ImageField(upload_to='images/', max_length=255, null=True)
在settings.py中
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
現在,當我從瀏覽器上傳圖像時,圖像的url作為絕對路徑存儲在數據庫中。 例如,名為“ example.png”的圖像將具有
http://localhost:8000/media/images/example.png
但我希望僅將相對路徑存儲在數據庫中。 不能與localhost和端口一起使用。 我怎么做?
你怎么辦?
是什么讓您認為Django在數據庫中存儲http://localhost:8000/media/images/example.png
? 如果那是django所做的,那么通過在python manage runserver 8010
更改端口是否意味着所有上傳的東西都中斷了?
不,那不是Django要做的。 請參閱文檔中的內容 :
>>> car = Car.objects.get(name="57 Chevy")
>>> car.photo
<ImageFieldFile: chevy.jpg>
>>> car.photo.name
'cars/chevy.jpg'
>>> car.photo.path
'/media/cars/chevy.jpg'
>>> car.photo.url
'http://media.example.com/cars/chevy.jpg'
上面應該足以解釋發生了什么。 檢查上面的鏈接以獲取更多詳細信息。
car.photo.name
是 Django存儲在數據庫中的名稱。 car.photo.url
或care.photo.path
就是您認為存儲在數據庫中的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.