我无法将表单中的数据发送到我的应用程序中的新表单。 我想执行以下操作:在用户单击记录中的按钮后,该记录数据将被复制到另一个空表单。
无需永久或长时间存储这些值。仅在从一个表单到另一个表单的过渡中,填充字段为空白表单。
基本上是Ctrl + C - Ctrl + V形式,但在复制后没有保存记录...
我已经完成了使用网址参数之类的工作,但想要更清洁。 我需要复制包括内联的值。
我想过将数据存储在会话中,然后在目标表单中检索它们。但是,我不知道它是否是实施它的最佳方式。 如果是这样,我如何在Django中使用会话?
这是我目前在admin.py文件中的代码:
def response_change(self, request, obj):
# name of the custom button
if '_copy_and_paste' in request.POST:
# getting the data and storing the session
request.session['field_1'] = obj.field_1
request.session['field_2'] = obj.field_2
return super(MyClassAdmin, self).response_change(request, obj)
我正在使用Django管理员(版本1.8)。
答案 0 :(得分:0)
无需在会话中存储此信息,您可以将请求对象传递回模板页面。
在 settings.py 文件中,确保 context_processors.request 位于context_processors中:
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
...,
'django.template.context_processors.request', #<- make sure this line is here
...,
],
},
},
]
然后,在 views.py
中from django.shortcuts import render
def response_change(request):
if '_copy_and_paste' in request.POST:
return render(request, 'your_template.html')
在模板中,访问存储在请求中的数据:
<input type="text" name="field1" value="{% if request.POST.field1 %}{{ request.POST.field1}}{% endif %}">