Django从ModelForm获取图像

2024-06-16 14:16:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含像这样的ImageField的模型:

class MyModel(models.Model):
    photo = models.ImageField()

还有一种形式,比如:

^{pr2}$

在我看来:

def show_form(request):
    form = MyModelForm(request.POST or None)
    content = {
        'form': form,
    }

    if form.is_valid():
        mymodel = form.save(commit=False)
        mymodel.save()

    return render(request, 'appname/template.html', content)

以及我的模板:

<!DOCTYPE html>
<html>
  <body>
    <form action="" method="POST">
      {% csrf_token %}
      <table align="center">
        {{ form.as_table }}
        <tr>
          <td>
            <input type="submit" value="Submit" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

但是每当我选择一张图片并点击提交时,表单就会告诉我这个字段是必需的,它不会保存它。

提前谢谢。


Tags: 模型formmodelsrequestsavehtmltablebody
1条回答
网友
1楼 · 发布于 2024-06-16 14:16:01

您需要在ImageField中提供and upload_to参数

photo = models.ImageField(upload_to='images')

把表格做成这样

^{pr2}$

并确保您已经定义了MEDIA_URL和{}

改变你的看法

def show_form(request):
    if request.method == 'POST':
       form = MyModelForm(request.POST or None)
       if form.is_valid():
          mymodel = form.save(commit=False)
          mymodel.save()
    else:
       content = {
        'form': form,
        }
       return render(request, 'appname/template.html', content)

相关问题 更多 >