Cохранение предыдущих значений после перезагрузки страницы django
У меня есть выпадающий список стран:
Код models.py:
from django.db import models
class CountriesView (models.Model):
name = models.CharField(max_length=100)
Код views.py
class IndexView(View):
def get(self, request, *args, **kwargs):
countries = CountriesView.objects.all()
context = {
'countries': countries,
}
return render(request, 'index.html', context=context)
def post(self, request, *args, **kwargs):
if request.method == 'POST':
country = request.POST['name']
if 'countries' in request.session:
request.session['countries'].append(country)
else:
request.session['countries'] = [country]
list_countries = request.session.get('countries', None)
countries = CountriesView.objects.all()
# контекст
context = {
'countries': countries,
'list_countries': list_countries
}
return render(request, 'index.html', context=context)
Код html:
<body>
<form method="post">
{% csrf_token %}
<select name="name">
<option selected="selected">Страны</option>
{% for country in countries %}
<option>{{ country.name }}</option>
{% endfor %}
</select>
<input type="submit" value="Вести">
</form>
{% for c in list_countries %}
<p>{{ c }}</p>
{% endfor %}
</body>
Когда я выбираю страну и нажимаю на кнопку, страна пишется снизу
Но когда я выбираю еще раз страну, то предыдущая заменяется на нынешнюю. А как сделать так, чтобы старая не исчезала, а новая писалась снизу и так далее. Как сделать так чтобы при обновлении данные сохранялись?
Ответы (1 шт):
Автор решения: Za Ars
→ Ссылка
# во вью
def get(...):
...
list_countries = request.session.get('countries', None)
def post(...):
...
if 'countries' in request.session:
request.session['countries'].append(country)
else:
request.session['countries'] = [country]

