Метод get_object () вместо get_initial () в createview для предварительного заполнения формы? - PullRequest
0 голосов
/ 07 декабря 2018

Можно ли предварительно заполнить форму Django с помощью метода get_object вместо get_initial при использовании CreateView.Я пытаюсь клонировать (все атрибуты будут одинаковыми, кроме первичного ключа) записи в таблице базы данных.Не использует UpdateView, поскольку он не будет обновлять существующую запись.Или есть ли другой способ приблизиться к этому?

    class RequestCloneView(SuccessMessageMixin, CreateView):
        model = Request
        form_class = RequestAddForm
        http_method_names = ['get', 'post']
        template_name = 'request_add.html'
        success_message = "Request Created!"
        def get_initial(self):
            initial_data = super(RequestCloneView, self).get_initial()
            data = Request.objects.get(req_id=self.kwargs['qid'])
            initial_data['req_label'] = data.req_label
            initial_data['model'] = data.model
            initial_data['version'] = data.version
            initial_data['type'] = data.type
            initial_data['test'] = data.test
            return initial
        # def get_object(self):
        #     return Request.objects.get(req_id=self.kwargs['qid'])
        ...

Это работает для меня, но хотел знать, можем ли мы использовать get_object, как мы используем для UpdateView для предварительного заполнения формы вместо назначения каждого значения в словарь initial_dataвручную?Или любой другой лучший способ сделать это?

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