

webページに画像入力フォームを表示することはできたのですが、その入力フォームに添付された画像をどのようにして使うかがわからなくこまっています。画像の情報を取り出したいと考えています

[code]

    #view.py
    from django.shortcuts import render
    
    # Create your views here.
    from django.http import HttpResponse
    from .models import Post
    
    def index(request):
    params = {
            'form': PhotoForm(),            
    
        }
    if (request.method == 'POST'):      
        params['form'] = PhotoForm(request.POST,request.FILES)
    return render(request, 'cp4/index.html', params)
    
[/code]

# models.py

[code]

    from django.db import models
    
    # Create your models here.
    class Post(models.Model):
    title = models.CharField(max_length=100)
    image = models.ImageField(upload_to='media/')
    
    def __str__(self):
        return self.title
    
[/code]

# forms.py

[code]

    from django import forms                                                           
    
    class PhotoForm(forms.Form):
    form = forms.ImageField()
    
[/code]

# index.pyの一部

[code]

    <form action="{% url 'index' %}" method="post" enctype="multipart/form-data" id="upload_form">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="click">
    </form>
    
[/code]


CC BY-SA 4.0
2018-09-09T13:03:59.043
48236
2022-08-14T02:09:16.003
2018-09-10T00:03:58.460
23994
30046
question
python django
Djangoの画像入力フォームの使い方がわからない


Django 2であれば、基本的なアップロード処理がこのページで紹介されています。

[Django Documentation -
ファイルのアップロード](https://docs.djangoproject.com/ja/2.1/topics/http/file-uploads/)

アップロードされたファイルの処理方法は、以下のように書いてあります。

[code]

    def upload_file(request):
        if request.method == 'POST':
            form = UploadFileForm(request.POST, request.FILES)
            if form.is_valid():
                handle_uploaded_file(request.FILES['file'])
    ・・・
    
[/code]

> アップロードされたファイルをハンドルする一般的な方法は、次のようになります。
[code]

    def handle_uploaded_file(f):
        with open('some/file/name.txt', 'wb+') as destination:
            for chunk in f.chunks():
                destination.write(chunk)
    
[/code]

まずは、このページをよく読んでみて下さい。


CC BY-SA 4.0
2018-09-09T13:24:05.210
48238
2018-09-09T13:55:53.503
2018-09-09T13:55:53.503
21092
21092
48236
answer