所以这是the view :

def update_ticket(response,ticket_title):
  ticket = get_object_or_404(TicketsModel, title=ticket_title)
  ticket_form = AddTicketsForm(response.POST or None,instance=ticket,assigned_by=response.user)
  if 'return' in response.POST:
    return redirect('home', type_user=response.session.get('type_user'))
  if ticket_form.is_valid():
    ticket.ticket_creation_date = datetime.now()
    ticket_form.save()
    return redirect('home', type_user=response.session.get('type_user'))

return render(response, "template/testapp/update_ticket.html", {'ticket_title': ticket.title, 'ticket_form': ticket_form})

问题是,当我呈现表单时,我看不到输入中的数据,但如果我删除了AddTicketsForm()中的"response.POST",我可以看到数据,但我不能更新任何东西

here is the html content

<h2>Update Ticket</h2>
        <form action="{% url 'update_ticket' ticket_title=ticket_title %}" method="post">
            {% csrf_token %}
            {{ ticket_form.as_p }}
            <button type="submit" name="save" id="regDirect" >Save</button>
            <button type="submit" name="return">Return</button>
        <form/>

推荐答案

若要在表单字段中显示当前数据,同时还能够更新数据,应使用request.method属性在提交表单时有条件地包含request.POST,并在首次呈现表单时排除它.

试试这个视图:

def update_ticket(response, ticket_title):
    ticket = get_object_or_404(TicketsModel, title=ticket_title)
    ticket_form = AddTicketsForm(instance=ticket, assigned_by=response.user, **response.POST** if response.method == 'POST' else None)

    if 'return' in response.POST:
        return redirect('home', type_user=response.session.get('type_user'))

    if ticket_form.is_valid():
        ticket.ticket_creation_date = datetime.now()
        ticket_form.save()
        return redirect('home', type_user=response.session.get('type_user'))

    return render(response, "template/testapp/update_ticket.html", {'ticket_title': ticket.title, 'ticket_form': ticket_form})

因此,现在,您的AddTicketsForm在提交表单时将具有request.POST数据,而在第一次呈现表单时将不包含request.POST数据,这样您就可以看到输入中的数据.

当表单提交时,将包括request.POSTis_valid()方法将相应地处理更新.

Python相关问答推荐

使用scipy. optimate.least_squares()用可变数量的参数匹配两条曲线

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

Deliveryter Notebook -无法在for循环中更新matplotlib情节(保留之前的情节),也无法使用动画子功能对情节进行动画

为什么我的Python代码在if-else声明中的行之前执行if-else声明中的行?

删除所有列值,但判断是否存在任何二元组

两个pandas的平均值按元素的结果串接元素.为什么?

Pandas Loc Select 到NaN和值列表

如何在图中标记平均点?

在单次扫描中创建列表

LocaleError:模块keras._' tf_keras. keras没有属性__internal_'''

Gekko中基于时间的间隔约束

语法错误:文档. evaluate:表达式不是合法表达式

如何在Python中自动创建数字文件夹和正在进行的文件夹?

pytest、xdist和共享生成的文件依赖项

为什么我只用exec()函数运行了一次文件,而Python却运行了两次?

Django抛出重复的键值违反唯一约束错误

EST格式的Azure数据库笔记本中的当前时间戳

按列表分组到新列中

将时间序列附加到数据帧

如何通过函数的强式路径动态导入函数?