Добавление загруженного текстового файла в поле textbox - Django

Я довольно новичок в Django и все еще учусь, но у меня возникают трудности при попытке понять, как позволить пользователю загружать .txt файл, но вместо этого загруженный .txt файл должен перезаписываться в самом текстовом поле. Пример: При загрузке https://imgur.com/a/jdCjlVS

<
class NewInput(forms.Form):
    text = forms.CharField(label='Input', max_length=1000, required=False)
    file = forms.FileField(required=False)

models.py

class Collection(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="collection", null=True)
    text = models.TextField(max_length=1000, default='')

create.html

{% extends 'main/base.html' %}
{% load crispy_forms_tags %}

{% block title %}
New Input
{% endblock %}

{% block content %}
<center>
    <h3>Create a New Input:</h3>
    <p class="text-primary"></p>
    <form method = "post" action = "/create/" class="form-group" enctype="multipart/form-data">
        {% csrf_token %}
        {{form|crispy}}
        <div class="input-group mb-3">
            <div class="col text-center">
            <button type="submit" name="save" class="btn btn-success">Create</button>
            </div>
        </div>
    </form>
</center>
{% endblock %}

views.py

def create(response):
    if response.user.is_authenticated:
        username = response.user.username
        if response.method == "POST":
            form = NewInput(response.POST)
            if form.is_valid():
                n = form.cleaned_data["text"]
                t = Collection(text=n)
                t.save()
                response.user.collection.add(t)
                
            return HttpResponseRedirect("/collections/%s" % username)
        else:
            form = NewInput()
        return render(response, "main/create.html", {"form": form})
    else:
        return HttpResponseRedirect("/login")

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

Вернуться на верх