python - 预填充 Django 表单 - request.FILES 和实例

标签 python django forms file

我在 Django 中遇到了这个奇怪的问题。

我有一个包含多个文本字段和一个 ImageField 的表单。在编辑 View 中,我希望使用从数据库检索的实例中的值预填充表单。

下面的代码似乎可以工作:

form = UserForm(request.POST or None, instance=instance)

它用文本字段预填充我的表单。 ImageField 也已预填充,但无论我选择什么新图像,它都不会在提交表单后更新。

我试过:

form = UserForm(request.POST or None, request.FILES, instance=instance)

由于某种原因,这导致表单中的每个字段都为空,但 ImageField 除外,我现在可以更改它。

我想要实现的是:要预填充的文本字段,以及 ImageField。我应该能够更改 ImageField。

对此有什么想法吗?

最佳答案

一个示例,使用 request.files 保存数据,使用表单保存实例。

def LocationEdit(request, pk):

locations = Location.objects.get(pk=pk)

form = LocationForm(request.POST or None, instance=locations)

if request.method == 'POST':

    form = LocationForm(request.POST or None, request.FILES or None, instance=locations)
    print(form)
    if form.is_valid():

        form.save()

        messages.success(request, "I saved it successfully")
        return redirect('location:location_list')

types = Location.STATUS

return render(request, 'backend/location/edit.html', {'form' : form, 'locations' : locations, 'types' : types})

关于python - 预填充 Django 表单 - request.FILES 和实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33714485/

相关文章:

javascript - 如何在 Javascript 生成的 HTML 表单中包含 Django 1.2 的 CSRF token ?

python - 对表单更改使用react

python - Django - 按方法排序查询集

python - 为列值创建二进制指示符变量

Python 元组操作

javascript - 无法使用 jQuery 更改隐藏输入文本框的值

python - 删除第一个字符后的所有字符

python - 在 django 中处理零行时 filter().update() 的最佳方法?

javascript - 动态添加的行不是可视化的 HTML

javascript - 内联显示表单元素