我想知道如何将由专辑分隔的图像显示在Django的页面上。到目前为止,我已经学会了如何使用这行
<img src="{% static "images/python-logo@2x.png" %}">
在我的html文件中。
结构:
/PersonalWebsite
/static
/img
/albums
/album1
img1
/album2
img2
...etc
我想要做的是有一些专辑缩略图,点击后,应显示专辑中的所有图像。我相信我会用AJAX请求来做这件事。我可能会将这些照片分类为标签,并将名称和其他特征放在一起。这将在我的models.py
中完成:(虽然没有完成)
from django.db import models
from django.contrib import admin
import os
from PersonalWebsite.settings import MEDIA_ROOT
class Album(models.Model):
title = models.CharField(max_length = 60)
def __unicode__(self):
return self.title
def get_image_by_album(self):
images = []
for root, dirs, files in os.walk(os.path.join(MEDIA_ROOT, 'albums', self.title)):
mypath = os.sep.join(os.path.join(root, file).split(os.sep[4:]))
images.append(mypath)
return images
class Tag(models.Model):
tag = models.CharField(max_length = 50)
def __unicode__(self):
return self.tag
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)
def __unicode__(self):
return self.image.name
class AlbumAdmin(admin.ModelAdmin):
search_fields = ["title"]
list_display = ["title"]
class TagAdmin(admin.ModelAdmin):
list_display = ["tag"]
class ImageAdmin(admin.ModelAdmin):
search_fields = ["title"]
list_display = ["__unicode__", "title", "created"]
list_filter = ["tags", "albums"]
admin.site.register(Album, AlbumAdmin)
admin.site.register(Tag, TagAdmin)
admin.site.register(Image, ImageAdmin)
我的&#34; get_image_by_album&#34;解析专辑并将路径附加到&#34;图像&#34;名单。多数民众赞成在我现在就得到了= /我也想建立一个管理员,以便我以后可以轻松维护网站。我想我将创建一个视图方法,只需获取图像路径列表并以这种方式显示它。我愿意接受建议!让我知道你的想法!我还想设置一个管理界面,让我可以手动上传和编辑照片中的元数据,但我会在以后知道如何操作。