Я использую Джанго вид обновления для моего model/records
редактирования материала, как показано нижекак изменить/изменить почтовые данные в Джанго UpdateView
class EditProductView(LoginRequiredMixin, UpdateView):
model = Product
def get_template_names(self):
return ['website/product/edit_product.html']
def get_success_url(self):
return reverse('product_details', args=[self.kwargs['pk']])
def get_context_data(self, **kwargs):
publisher = Publisher.objects.get(product__id=self.kwargs['pk'])
context = super(EditProductView, self).get_context_data(**kwargs)
context.update(
{
'publisher':publisher,
}
)
return context
edit_product = EditProductView.as_view()
Так что все, что я хочу/пытаюсь сделать, это изменить (добавить некоторые данные, редактировать уже отправленные данные в соответствии с функциональными возможностями сайта) данные POST
перед отправкой в форме,
Так я знаю, что UpdateView
имеет некоторый метод защиту def post(self, request, *args, **kwargs):
, но я не знаю точно, как использовать его
Supp новления ниже является request.POST данных я получаю
<QueryDict: {u'product_name': [u'Biscuit'], u'product_price': [u'1000'], u'product_tag': [u'']}>
Так что теперь я хочу, чтобы изменить выше QueryDict
и если значение product_tag
было пусто, мне нужно назначить какое-то по умолчанию один и представить с последним querdict
Также я знаю, что Querydict изменен, но из-за того, что мне нужно отредактировать данные POST, до submitting/saving to database
, мне нужно сделать этот запросdict как dict, а затем отредактировать его и преобразовать обратно в querdict
Так ведь whats my вопрос:
- Как мы можем изменить
POST
данные вUpdateView
перед отправкой/сохранение в базе данных - ли
post
метод heplful?
На самом деле, я просто хочу, не хочу использовать ModelForm, поскольку уже сталкиваюсь с некоторыми проблемами с ModelForms в моем случае. Итак, наконец, мы можем редактировать данные сообщения в UpdateView выше? –
Да, вы можете. См. Мое обновление для примера. –
k это было полезно, но что делать, если мне нужно заменить request.POST на весь новый запрос? Есть ли способ заменить request.POST на весь новый запрос? как запрос.POST = new_querdict –