1

发布数据

user_logo 文件实际上是一个 img 数据,

如何将此 img 保存到 django 模型?

4

3 回答 3

2

模型.py

class Image(models.Model):
    image = models.ImageField(upload_to='image_uploads')
    created = models.DateTimeField(auto_now_add=True)

表格.py

class ImageForm(ModelForm):
    class Meta:
        model = Commercial

视图.py

def add_image(request):
    if request.method == 'POST':
        form = ImageForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
return direct_to_template(request, 'page.html', {
    'form': ImageForm()
})

page.html

<form method="post" enctype="multipart/form-data">
{% csrf_token %}
    {{form.image}}
</form>
于 2013-01-25T23:41:58.067 回答
0

通常,您不想将图像存储在数据库中。Django 的FileFieldImageField从磁盘加载数据。

编辑:刚刚注意到标题与发布数据有关。查看有关文件上传的文章

于 2013-01-24T13:28:12.920 回答
0

看起来'user_logo'一个JPEG文件编码base16/hex(除了前缀'<'

>>> 'ffd8ffe000104a4649460001010100'.decode('hex')
'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00'

您可以使用ContentFile来存储此类数据

obj.image.save(filename, ContentFile(the_decoded_content))

另外,最好问一下实现客户端的家伙他是否可以发布multipart/form-data,如果可以的话,user_logo可以很容易地通过request.FILES......和更少的请求正文

于 2013-01-29T13:42:03.163 回答