Моя проблема в том, что когда пользователь создает новую запись в базе данных на моей веб-странице (Mysql) и система перенаправляет пользователя в список созданных элементов, новый элемент не будет отображаться, пока я снова не нажму на ссылкувариант по разделу.Другими словами, я хочу, чтобы django показывал новые результаты, когда я перенаправляю пользователя в список, вот некоторые фрагменты кода, который я использую:
Это ссылка, по которой пользователь нажимает, чтобы показать список после созданияновый объект:
<div class="modal-footer">
<div class="col-lg-12 text-right">
<a href="{% url 'microsite:myportal_list' device_serial=device_object.network_id %}" class="btn btn-default">Regresar a Listado</a>
</div>
</div>
Это список, в котором я показываю элементы из базы данных:
{% for portal in portal_list %}
<section class="search-result-item">
<a class="image-link" href="/microsite/myportal/view/{{portal.portal_id}}">
<img class="image" src="{% static 'img/template-icon.png' %}">
</a>
<div class="search-result-item-body">
<div class="row">
<div class="col-sm-9">
<h4 class="search-result-item-heading">
<a href="/microsite/myportal/view/{{portal.portal_id}}">No. de Plantilla : {{portal.portal_id}} </a>
</h4>
<p class="description">
ID Terminos: {{portal.terms_id}}
</p>
</div>
<div class="col-sm-3 text-align-center">
<p class="value3 text-gray-dark mt-sm">
{{ randomNumber|random }} visitas
</p>
<p class="fs-mini text-muted">
Por Semana
</p>
<br>
<a href="/microsite/myportal/view/{{portal.portal_id}}" class="btn btn-primary btn-info btn-sm">Ver Detalles</a>
</div>
</div>
</div>
</section>
{% endfor %}
Вот моя функция в представлениях: (Объект, полученный из MySQL, называетсяmyportal_list)
def myportal_list(request, device_serial):
logger.debug("views - myportal_create")
deviceObject = CaptivePortalService.CaptivePortalService().getNetwork(device_serial)
captive_portal_list=""
context = {'device_object': deviceObject}
myportal_list = my_portal.objects.all()
context['portal_list'] = myportal_list
number = []
for i in myportal_list:
number.append(randint(0, 25))
context['randomNumber'] = number
return render(request, URL_MYPORTAL_LIST, context)
И, наконец, мой список опций, это единственный способ показать новые данные из базы данных: (даже если я нажму F5, новые данные не будут отображаться)
<ul id="network-option" class="panel-collapse collapse ">
<li class=""><a href="{% url 'microsite:myportal_list' device_serial=device_object.network_id %}">Mi Portal</a></li>
<!-- <li class=""><a href="{% url 'microsite:device_view' device_serial=device_object.network_id %}">Configuraciones de Accceso</a></li> -->
<li class=""><a href="{% url 'microsite:setconfigurations' device_serial=device_object.network_id %}">Configuraciones de Accceso</a></li>
<li class=""><a href="{% url 'microsite:promotion_view' device_serial=device_object.network_id %}">Promociones</a></li>
<li class=""><a href="{% url 'microsite:termsuse_list' device_serial=device_object.network_id %}">Términos de Uso</a></li>
</ul>
Функция просмотра, в которой я создаю новую запись: (Я обрабатываю ответ с помощью AJAX, чтобы иметь возможность обрабатывать сообщения в случае ошибки или если форма была отправлена правильно, в этом случае сообщения перечислены в модальномнижний колонтитул, который я отправил первым)
def myportal_create(request, device_serial):
if request.method == "GET":
logger.debug("views - myportal_create")
deviceObject = CaptivePortalService.CaptivePortalService().getNetwork(device_serial)
captive_portal_list=""
context = {'device_object': deviceObject}
promotion_list = promotions.objects.all()
context['promo_list'] = promotion_list
terms_list = use_terms.objects.all()
context['terms_list'] = terms_list
return render(request, URL_MYPORTAL_CREATE, context)
if request.method == "POST":
form = PortalForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect("/microsite/myportal/list/"+ device_serial)
else:
print(form.errors)
Также у меня есть правильная конфигурация для использования MySQL в настройках, поэтому я не думаю, что это проблема.
Спасибос на время.