Есть ли способ сделать django ModelFormSet нередактируемым полем - PullRequest
0 голосов
/ 04 августа 2020

У меня есть ряд объектов модели, и я хотел бы, чтобы данные о них можно было редактировать из одного представления. Соответственно, я установил это:

    class JiraTicketTaskUpdateView(LoginRequiredMixin, ModelFormSetView):                                               
      model = models.TaskRecord                                                                                       
      template_name = 'qa_jiraticket_task_update.html'                                                                
      #form_class = forms.EditListForm                                                                                
                                                                                                                      
      fields = ['task_name', 'status', 'hours', 'assigned_to']                                                                       
                                                                                                                   
    def get_context_data(self, **kwargs):                                                                           
          context = super().get_context_data(**kwargs)                                                                                                                               
          ticket_id = int(self.request.path.split('/')[-1])                                                                   ticket = models.JiraTicket.objects.get(pk=ticket_id)                                                        
          context['formset'].queryset = ticket.taskrecord_set.all()                                                   
          breakpoint()                                                                                                
          #We can add more stuff here later                                                                           
          return context 

Я хочу, чтобы поле «assign_to» было доступно для просмотра, но не для редактирования. Теперь, как я знаю из документации django, я могу визуализировать каждую форму в наборе форм вручную (следующий пример - не мой код, это из django документов)

    <form method="post">
{{ formset.management_form }}
{% for form in formset %}
{{ form.id }}
<ul>
<li>{{ form.name }}</li>
<li>{{ form.age }}</li>
</ul>
{% endfor %}
</form>

Однако для некоторых Управление по причинам не хочет, чтобы идентификатор формы отображался, что необходимо для работы этого метода.

Есть ли способ изменить базовый набор форм и / или контекст, чтобы сделать поле недоступным для редактирования на стороне просмотра?

...