Как добавить имя загруженного файла в модель в django
Я изучаю django. Я застрял на этой проблеме.
Я создал форму, в которой пользователь загружает текстовый файл и выбирает пол. Пользователь также должен написать имя текстового файла в текстовом поле.
В бэкенде я хочу сохранить имя текстового файла вместе с полом в модели. Это необходимо сделать потому, что когда несколько пользователей будут использовать приложение, я должен знать, какой пользователь выбрал тот или иной пол, чтобы я мог получить желаемый результат.
Как я уже упоминал, пользователю нужно ввести имя файла, я подумал, возможно ли получить имя файла из загруженного файла и затем сохранить его в модели, чтобы пользователю не нужно было вводить имя файла и, следовательно, не было текстового поля.
Вот ссылка на мой git-репозиторий - https://github.com/AnshulGupta22/auto_generation.git
Может кто-нибудь подскажет мне, как это сделать? Как я уже сказал, я новичок в django и помощь будет оценена по достоинству.
Вы можете получить имя файла из request.POST и создать объект для имени_файла
##in views.py
def get_gender(request):
if request.method == 'POST':
form = GenderForm(request.POST)
uploaded_file = request.FILES['document']
file_name = request.FILES["name"] #NEW
Gender.objects.create(file_name=file_name) #NEW
fs = FileSystemStorage()
name = fs.save(uploaded_file.name, uploaded_file)
fbh = name[:-4]
if form.is_valid():
form.save()
run(["gnome-terminal", "--", "sh", "-c", f"espeak -ven+m1 -f {uploaded_file.name} -w {fbh}.wav "])
return HttpResponse("Blog created")
##in models.py
class Gender(models.Model):
file_name = models.CharField(max_length=120) #NEW