Django创建视图图像上传 [英] Django Create View Image Upload

查看:48
本文介绍了Django创建视图图像上传的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过ModelForm在CreateView中创建一个新对象。我希望玩家实例具有图片。但是上传的图像不会存储到'player_image'目录或写入数据库。

I'm trying to create a new object in a CreateView via ModelForm. I want the 'player' instance to have a image. But the uploaded image doesn't get stored to the 'player_image'-directory or written in the DB.

这些是我的文件:

models.py:

models.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

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']

pl ayer_add_view.py

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。

There might be something missing like request.FILES in views.py or enctype="multipart/form-data" in the form.

查看此处: https://docs.djangoproject.com/zh-CN/1.8/topics/http/file-uploads/

或查看以下内容: https://godjango.com/35-upload-files/

这篇关于Django创建视图图像上传的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆