【发布时间】:2018-05-26 11:53:30
【问题描述】:
我正在尝试为包含 ImageField 的模型建立 CreateView。我可以从 django 管理页面成功上传和显示图像。但是,当我从自己的表单上传图像时,django 不会将图像上传到“upload_to”文件夹。我在下面写我的代码:
模型.py
from django.db import models
class Album(models.Model):
title = models.CharField(max_length=127)
artist = models.CharField(max_length=63)
release_date = models.DateField()
logo = models.ImageField(blank=True, upload_to='album_logos', default='album_logos/no-image.jpg')
def __str__(self):
return self.title
forms.py
from django import forms
from .models import Album
class AlbumCreateForm(forms.ModelForm):
class Meta:
model = Album
fields = [
'title',
'artist',
'release_date',
'logo'
]
views.py
class AlbumCreateView(CreateView):
form_class = AlbumCreateForm
template_name = 'music/album_create.html'
success_url = '/albums/'
album_create.html
{% extends 'base.html' %}
{% block content %}
<form method="post">{% csrf_token %}
{{ form.as_p }}
<button type="submit">Create</button>
</form>
{% endblock %}
当我尝试使用“album_create.html”创建相册并使用 django 的默认表单上传图像时,徽标图像不会上传到“album_logos”文件夹并采用默认值。我哪里做错了?
【问题讨论】:
-
你能试试这个吗,logo = models.ImageField(upload_to='album_logos') 并检查任何堆栈跟踪
-
我试过了。如果没有默认值,django 会说“此字段是必需的”。上面的图像字段输入表单。
标签: python django django-forms imagefield