【发布时间】:2018-04-03 04:34:25
【问题描述】:
我想创建一个 CreateView,表单已经完成,并带有一个将从另一个视图传递给它的参数。
有一个带有输入字段的初始视图。像这样:
<form role="form" action="" method="post">
{% csrf_token %}
<div class="col-sm-6">
<div class="form-group">
<div class="form-line">
<label>{{form.cpf.label}}</label><strong style="color:red;"> *</strong>
{% if form.cpf.errors %}<label class="error">{% for error in form.cpf.errors %}{{error}}{% endfor %}</label>{% endif %}
{{form.cpf}}
</div>
</div>
</div>
<button class="btn btn-success foot-btn" type="submit"><i style="vertical-align:middle" class="material-icons">add</i><span style="vertical-align:middle">Verificar</span></button>
</form>
当用户提交此表单时,他将被重定向到另一个页面。询问他是否想将该值插入数据库中。
现在我正在尝试像这样重定向,尝试将 POST 值作为参数传递给 CreateView
return redirect(reverse('blacklist:addcpfview', args=(request.POST['cpf'],)))
但我似乎无法在 CreateView 中获取此参数。
我知道我目前的做法可能非常错误,但我是 Django 的初学者,想知道最好的方法。
更新
创建视图
class AdicionarCPFView(CreateView):
form_class = CPFForm
template_name = 'blacklist/cpf/addCPF.html'
success_url = reverse_lazy('blacklist:cpfselectview')
def get_context_data(self, **kwargs):
context = super(CreateView, self).get_context_data(**kwargs)
context['title_complete'] = 'Adicionar CPF'
return context
【问题讨论】:
-
试试
def get_context_data(self, *args, **kwargs),你的参数在*args列表中。更好的是,改用kwargs并为您的参数命名。