Django: новые данные из базы данных не будут отображаться при перенаправлении URL-адреса, пока я снова не нажму на ссылку - PullRequest
0 голосов
/ 12 мая 2018

Моя проблема в том, что когда пользователь создает новую запись в базе данных на моей веб-странице (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 в настройках, поэтому я не думаю, что это проблема.

Спасибос на время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...