Как в проекте на django создать файл внутри функции представления и загрузить в бд

Рейтинг: 0Ответов: 1Опубликовано: 13.01.2023

Подскажите, можно ли создать файл внутри функции представления или класса в django на основе приходящих данных и формы, и после загрузить этот файл в bd, чтобы он попадал не в корневую папку проекта, а в папку медиа? Прилагаю примеры, как я делаю:

def forIndex(request):
    if request.method == "POST":
        newText = request.POST["file"]
        newdata = Data()
        newdata.name = newText
        print(newText)
        with open("text.txt", "w") as file:
            data = file.write(newText)
            newdata.file = data
    return render(request, "new/index.html")

Ответы

▲ 0Принят

Вам нужно переопределить метод form_valid в классе представления (CBV) и добавить свою логику.

def form_valid(self, form):
    """If the form is valid, save the associated model."""
    self.object = form.save(commit=False)
    # дописать Вашу логику 
    self.object.save()
    form.save_m2m()
    return super().form_valid(form)