我正在尝试通过 ModelForm 在 CreateView 中创建一个新对象。我希望“播放器”实例具有图像。但是上传的图像不会存储到“player_image”目录或写入数据库。
这些是我的文件:
模型.py:
class Player(models.Model):
last_name = models.CharField(max_length=255, verbose_name=_("Last Name"))
first_name = models.CharField(max_length=255, verbose_name=_("First Name"))
secret_name = models.CharField(max_length=255, verbose_name=_("Secret Key"), unique=True)
image = ImageField(upload_to='player_images/', verbose_name=_("Image"), null=True, blank=True)
player_form.py
class PlayerForm(forms.ModelForm):
last_name = forms.CharField(required=True, label=_("Last Name"))
first_name = forms.CharField(required=True, label=_("First Name"))
class Meta:
model = Player
fields = ['first_name', 'last_name', 'image']
player_add_view.py
class PlayerAddView(LoginRequiredMixin, CreateView):
form_class = PlayerForm
template_name = "project/player_add_view.html"
model = Player
def form_valid(self, form):
player = form.save(commit=False)
# I do other stuff here
player.save()
return HttpResponseRedirect(reverse('home'))
最佳答案
可能缺少某些内容,例如 views.py 中的 request.FILES 或表单中的 enctype="multipart/form-data"。
看这里:https://docs.djangoproject.com/en/1.8/topics/http/file-uploads/
关于python - Django 创建 查看图片 上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32423123/