Форма Django не рендерится повторно при обновлении страницы

#python #django

#python #django

Вопрос:

Я создаю средство сокращения URL в Django. У меня есть форма Django для отправки URL-адресов, которая имеет поле по умолчанию со случайным расширением. Когда я завершаю отправку URL для сокращения, я возвращаю новую форму в шаблон, чтобы таким образом вы могли отправить новый URL.

 return render(request, 'bitly/index.html', {
       "form": NewBitForm()
})
  

Но когда он рендерится, он оставляет старое расширение вместо рендеринга нового, даже после обновления страницы. Как я могу сделать так, чтобы при вызове NewBitForm() возвращалось другое расширение в форме?

Шаблон:

 <div class="card mb-3">
    <div class="card-body">
        <form action="{% url 'bitly:index' %}" method="post">
            {{ form }}
            <input type="submit" class="btn btn-primary btn-sm form-control">
            {% csrf_token %}
        </form>
    </div>
</div>
  

Класс формы:

 ALPHA_NUMERIC_CHARS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
class NewBitForm(forms.Form):
    def get_string(k):
        global ALPHA_NUMERIC_CHARS
        return ''.join(random.choice(ALPHA_NUMERIC_CHARS) for i in range(k))

    url = forms.CharField(label="URL to shorten")
    url.widget.attrs.update({
        'class': 'card mb-3 form-control',
        'spellcheck': 'false'
    })

    extension = forms.CharField(label="Effective Extension")
    extension.widget.attrs.update({
        'id': 'extension-field',
        'class': 'card mb-3 form-control',
        'spellcheck': 'false',
        'value': get_string(5)
    })