@mr_3efup

Cохранение предыдущих значений после перезагрузки страницы django?

У меня есть выпадающий список стран:

60829f3688aa0763659190.png

Код 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):

        list_countries = []

        if request.method == 'POST':
            country = request.POST['name']

        list_countries.append(country)
        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>


Когда я выбираю страну и нажимаю на кнопку, страна пишется снизу

60829ff676808223342007.png

Но когда я выбираю еще раз страну, то предыдущая заменяется на нынешнюю. А как сделать так, чтобы старая не исчезала, а новая писалась снизу и так далее. Как сделать так чтобы при обновлении данные сохранялись?

[1]: https://i.stack.imgur.com/QAqX8.png
[2]: https://i.stack.imgur.com/CAKaV.png
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
@olexndr090
Вы можете сделать это с помощью jquery, есть функция append, добавляет нудный элемент в конец выбранного элемента. например вот так:
jQuery("document").ready(function($){
      $('body').on('click', 'input', function() {
           $('p').append($('select').val());
    });
});

Это исходя от вашего кода, лучше присвоить нужным элементам классы и заменить названия тегов в скобках на классы. Но есть одно но, у меня с тегами select всегда проблема, не знаю будет ли у Вас, но если не сработает попробуйте заменить тег select на input type="list".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы