автоматически сохраненное значение в UpdateView Django - PullRequest
0 голосов
/ 06 марта 2019

Я новичок в Django и узнаю о взглядах, методах и о том, как они работают, особенно с этой проблемой. Дело в том, что я хотел бы знать, как автоматически сохранять значение поля в моей модели после обновления объекта в UpdateView, например, когда я обновляю объект, в данном случае отчет, в котором я могу назначить человека для выполнения это, я хотел бы сохранить значение модели, которое показывает «статус» и сохранить значение «назначен» или что-то в этом роде, чтобы узнать, был ли отчет уже назначен или нет. Я знаю, что есть методы, и, возможно, один из них можно было бы сделать, переписав класс, но я не знаю, как его применить или какой использовать.

Для справки это простой класс UpdateViews, который я использую:

class reporteupdate(UpdateView):
model = reporte_fallo
form_class = ReporteAsignar
template_name = 'formulario/jefe_asignar.html'
success_url = reverse_lazy('formulario:reporte_listar_jefe')

и поле модели, которому я хотел бы присвоить значение, называется status .

Я жду вашей помощи, так как я застрял с этим сомнением. Спасибо !!!

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Возможно, вы можете установить флаг состояния после успешной проверки формы, переопределив метод form_valid() в вашем представлении reporteupdate:

class reporteupdate(UpdateView):

    ...

    def form_valid(self, form):
        # Call super() to save the model and return the success url
        resp = super().form_valid(form)

        # Set your status flag
        self.object.status = 'assigned'  
        self.object.save()

        return resp
0 голосов
/ 06 марта 2019

запрос будет изменен после того, как вы создадите его в методе post, так что вы можете сделать это: -

class SomeUpdateView(UpdateView):
    model=your model
    form_class=you form


    def post(self, request, **kwargs):
    request.POST = request.POST.copy()
    request.POST['status'] = 'Assigned'
    return super(SomeUpdateView, self).post(request, **kwargs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...