🚀

Django models.py FileFieldを複数選択可能にする。

2023/04/02に公開約800字
models.py
class Post(models.Model):
    files = models.ManyToManyField('MyFile')

class MyFile(models.Model):
    file = models.FileField(upload_to='uploads/', blank=True, null=True)
admin.py
from django.contrib import admin
from . import models
from django.utils.html import format_html

@admin.register(models.Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'files_links')

    def files_links(self, obj):
        links = ""
        for my_file in obj.files.all():
            url = my_file.file.url
            name = my_file.file.name.split('/')[-1]
            link = f'<a href="{url}">{name}</a><br/>'
            links += link
        return format_html(links)

@admin.register(models.MyFile)
class MyFileAdmin(admin.ModelAdmin):
    pass

Discussion

ログインするとコメントできます