Есть ли способ включить выбор нескольких файлов для загрузки одного файла в Django Admin, чтобы при сохранении создавалось несколько записей? - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть случай, когда пользователи загружают файлы, и каждый файл имеет определенные атрибуты. Часто может быть 10 файлов, которые необходимо загрузить в базу данных с такими же атрибутами. Чтобы сэкономить время, было бы неплохо позволить пользователю выбрать все десять файлов и добавить в базу данных 10 записей, по одной записи на файл. Мои модели похожи на приведенный ниже пример:

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 Ответ

0 голосов
/ 24 февраля 2020

Вы можете переопределить вашу форму администратора, а затем сделать там все свои собственные логи c

Django пользовательская форма модели

Вы можете создать форму с 10 полями для файлов и 1 категорией содержимого, а затем обработать ее через форму.

Или вы также можете создать formset .

Я бы создал форму с категорией содержимого в качестве 1 поля и вложенным набором форм для всех поля файла. Пользователь может добавить столько файлов, сколько ему нужно, и при загрузке взять выбранную категорию контента и применить ее к каждому файлу в наборе форм, переопределив метод очистки набора форм .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...