gpt4 book ai didi

python - Django:将 CreateView 与 HTML 模板一起使用时未保存图像

转载 作者:太空宇宙 更新时间:2023-11-04 09:40:02 25 4
gpt4 key购买 nike

为了围绕我的一个 CreatView 类包装一些文本,我使用 HTML 模板来包装表单。然而,当使用这个模板时,除了传递给表单的 ImageField 的图像没有保存之外,一切都按预期工作。注释掉设置 CreateView 模板的行可以解决问题。但我想使用模板来选择在页面上显示更多内容,而不仅仅是表单。将表单包装到模板中时,表单逻辑如何变化?

views.py

class PieceInstanceCreate(LoginRequiredMixin, CreateView):
model = PieceInstance
fields = ['version', 'piece_image', 'status']
# commenting out the below line makes the form save the image
template_name = 'pieceinstance_create.html'

def form_valid(self, form):
form.instance.piece = Piece.objects.get(id=self.kwargs['pk'])
return super(PieceInstanceCreate, self).form_valid(form)

def get_success_url(self):
return reverse_lazy('piece-detail', kwargs={'pk': self.kwargs['pk']})

pieceinstance_create.html

{% extends "base_generic.html" %}

{% block content %}
<h1>Add a Version</h1>

<form action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
{% endblock %}

最佳答案

作为 django 文档 mention ,要使文件上传正常,您需要设置 enctype="multipart/form-data"模板中的表单属性:

<form action="" method="post" enctype="multipart/form-data">

关于python - Django:将 CreateView 与 HTML 模板一起使用时未保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52084486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com