#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)
})