2 回答

TA貢獻2080條經驗 獲得超4個贊
考慮以下模型,使用 ImageField 來存儲照片:
class Car(models.Model):
? ? name = models.CharField(max_length=255)
? ? price = models.DecimalField(max_digits=5, decimal_places=2)
? ? photo = models.ImageField(upload_to='cars')
任何 Car 實例都會有一個照片屬性,您可以使用該屬性來獲取所附照片的詳細信息:
car = Car.objects.get(name="57 Chevy")
car.photo
<ImageFieldFile: cars/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'

TA貢獻1789條經驗 獲得超10個贊
你不需要一個user_pic_url字段。您可以從字段本身獲取數據user_pic
class Main(models.Model):
# rest of your fields
user_pic = models.ImageField()
@property
def user_pic_url(self):
return self.user_pic.url
現在,您可以直接訪問 URL,如下所示:
model_instance = Main.objects.first()
print(model_instance.user_pic_url)

TA貢獻1821條經驗 獲得超6個贊
如果您想首先獲取上傳的路徑,請確保您已在 settings.py 中配置 MEDIA_URL MEDIA_ROOT,并且還必須將文檔中給出的媒體 url 的放置 url 模式放入其中
如果您已經這樣做了,您只需放置查詢集
obj = Main.objects.all().first()
像這樣,當你獲取任何對象時,你必須轉到圖像字段并在之后添加 url,就像這樣,你必須只在圖像字段中的所有配置之后添加 url
print(obj.user_pic.url) <---------you can get your url like this
添加回答
舉報