Как использовать мод начальной загрузки с Django? - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь создать список элементов, и у каждого элемента есть кнопка, чтобы щелкнуть и обновить этот элемент.Я пытаюсь использовать загрузочный модал для обновления.Я могу заставить его работать, проблема в том, что когда я нажимаю кнопку обновления, он не работает, потому что он не передает pk на мой URL, какие-либо идеи для решения этой проблемы?

Это мое мнение

class ResearcherExperienceListView(LoginRequiredMixin, ListView):
    model = Researcher
    template_name = 'researcher/researcher_list.html'

    def get_queryset(self):
        queryset = super(ResearcherExperienceListView, self).get_queryset()
        queryset = Researcher.objects.get(pk=self.kwargs['pk'])
        print(self.kwargs)
        return queryset

это мой шаблон для моего ListView

{% extends "base.html" %}

{% block content %}   
<div class="container">
    <div class="row" style="padding-top: 5%">
        <div class="col-lg-10 col-lg-offset-1 col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2 ">
            <h1 class="title text-center">Experiencia em Areas de conhecimento</h1>
            <table class="table table-hover">
                <thead>
                    <tr>
                        <th>Area de Conhecimento</th>
                        <th>Ações</th>
                    </tr>
                </thead>
                <tbody>                    
                    {% for item in object_list.experience.all %}        
                        <tr>
                            <td>
                                {{item}}
                            </td>
                            <td>
                                <a data-toggle="modal" href="{% url 'researcher_experience_update' pk=item.pk %}" data-target="#{{item.pk}}" data-tooltip>
                                <i class="fa fa-edit fa-2x"></i>
                            </a>            
                            </td>
                         </tr>
                         <div class="modal fade " id="{{item.pk}}" tabindex="-1" role="dialog">                    
                            {% include "researcher/experiencetime_form.html" %}                           
                         </div>         
                    {% endfor %}
                </tbody>
            </table>
        </div>
    </div>
</div>

{% endblock content %}

Мой вид для обновления

class ResearcherExperienceUpdateView(LoginRequiredMixin, UpdateView):
    model = ExperienceTime
    form_class = ExpirienceTimeForm

Это мой шаблон для обновления.

{% load crispy_forms_tags %}


<div class="modal-dialog" role="document">
    <div class="modal-content">
        <h2 class="text-center card-title" style="padding-top:10px">Informações Gerais</h2>
        <form method="post" action="update/" style="padding:20px">
            {% csrf_token %}
            {{ form|crispy }}
            <input class="btn btn-primary btn-block" type="submit" value="Update" />
        </form>
    </div>
</div>

URL

re_path(r'^experience/(?P<pk>\d+)/$', ResearcherExperienceListView.as_view(), name="researcher_experience"),
re_path(r'^experience/update/(?P<pk>\d+)/$', ResearcherExperienceUpdateView.as_view(), name="researcher_experience_update"),

1 Ответ

0 голосов
/ 15 мая 2018

спасибо за вашу помощь, ребята

Я решил проблему с помощью get_context_data для передачи pk, затем в своем действии формы я сделал что-то вроде этого действия = "/ исследователь / опыт / обновление / {{pk}}/ "Я не знаю, правильно это или нет, но пока работает

...