[英]Image upload through admin in Django
我希望能夠通過Django中的管理員上傳圖像。 但是我有些困難
項目結構:
/Proj
/Proj
/static
/img
/albums
/album1
img1
/album2
img2
專輯類別:
class Album(models.Model):
title = models.CharField(max_length = 60)
def __unicode__(self):
return self.title
圖片類別:
class Image(models.Model):
title = models.CharField(max_length = 60, blank = True, null = True)
image = models.FileField(upload_to = get_upload_file_name) <-- !!!!
tags = models.ManyToManyField(Tag, blank = True)
albums = models.ForeignKey(Album)
width = models.IntegerField(blank = True, null = True)
height = models.IntegerField(blank = True, null = True)
created = models.DateTimeField(auto_now_add=True)
我認為我的image = models.FileField(upload_to = get_upload_file_name)
使用get_upload_file_name
方法將圖片放置在正確的相冊中。 這是通過追加到我做MEDIA_ROOT
這是MEDIA_ROOT = os.path.join(BASE_DIR, 'static')
因此,應該使用get_upload_file_name
方法。 但是我不確定該怎么做。
我認為在上傳之前,我需要先創建一個相冊,然后才能確定該圖像將插入哪個相冊。 不知道我的Image
或Album
課程是否完整。 謝謝您的幫助!!
您傳遞給upload_to
的函數必須具有以下形式:
def get_upload_file_name(instance, filename):
new_file_path_and_name = os.path.join(BASE_DIR, 'static', 'test.txt')
return new_file_path_and_name
instance
是您要保存的Image
模型的實例。 這意味着它可以訪問已填充的所有其他字段。 filename
是已上傳文件的原始名稱。 您可以選擇使用filename
或簡單地返回您選擇的其他路徑和名稱。
官方文檔在這里 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.