ユーザーがファイルをアップロードし、各ファイルに特定の属性がある場合があります。多くの場合、同じ属性でデータベースにアップロードする必要があるファイルが 10 個ある可能性があります。時間を節約するために、ユーザーが 10 個のファイルすべてを選択し、データベースに 10 個のレコード (ファイルごとに 1 つのレコード) を追加できるようにすると便利です。私のモデルは以下の例に似ています:
class ContentCategory(models.Model):
name = models.CharField(max_length=100)
class Document(models.Model):
file_name = models.CharField(max_length=100, blank=True)
note = models.TextField(null=True, Blank=True)
content_category = models.ForeignKey(ContentCategory, on_delete=models.PROTECT)
document = models.FileUpload(upload_to=f'{content_category}/')
def save(self):
self.file_name = os.path.basename(self.document.name)
super(Document, self).save()
私の admin.py は、以下のコードのように単純です。
class DocumentAdmin(admin.ModelAdmin):
exclude = ('file_name',)
admin.site.register(Document, DocumentAdmin)
admin.site.register(ContentCategory)
したがって、ここに頻繁に発生する正確なシナリオがあります。10 枚の写真をアップロードする必要があり、すべての写真が同じコンテンツ カテゴリとメモを取得します。誰かが適切なコンテンツ カテゴリを選択してメモを作成し、10 個のファイルすべてを選択してアップロードし、保存時にドキュメント テーブルに 10 個のレコードを作成できるように管理者を設定する方法はありますか? 写真ごとに1つ?