2

Django を使用して画像をアップロードしようとしていますが、エラーはありません。ただし、メディア フォルダー内にはファイルやディレクトリはありません。画像フィールドを除いて、他のすべてのフィールドはtableで更新されます。

モデル.py

from django.db import models

# Create your models here.
class Player_Profile(models.Model):
    name=models.CharField(max_length=50, null=True)
    email=models.EmailField(max_length=50)
    profile_picture=models.ImageField(upload_to='profile_picture/%y%m%d', blank=True, null=True)
    age = models.BooleanField()

ビュー.py

 from django.shortcuts import render_to_response
    from django.template import RequestContext
    from upload.models import Player_Profile
    def home(request):
        return render_to_response('upload/index.html',context_instance=RequestContext(request))
    def submit(request):
        if request.method == 'POST':
            username=request.POST.get('username')
            email=request.POST.get('email')
            age=request.POST.get('age')
            pic=request.FILES.get('myfile')
            profile_obj=Player_Profile(profile_picture=pic,name=username, email=email,age=age).save()   
        return render_to_response('upload/welcome.html',context_instance=RequestContext(request))

index.html

<form action="/upload/submit/" method="POST" encrypt="multipart/form-data">
        {% csrf_token %}
        User Name :<input type="text" name="username" id="usrname"/><br/>
        Age :<input type="text" name="age" id="age"/><br/>
        Email :<input type="email" name="email">
        <input type="file" name="myfile" /><br/>
        <input type="submit" name="submit" value="Upload" />

そして内部設定

MEDIA_ROOT = '/home/mridul/Desktop/Django/interim/pic/uploadpic/media'

MEDIA_URL = '/media/'

そして、uploadpic ディレクトリ内に手動でメディア ディレクトリを作成します。

4

1 に答える 1

2

そうではありません:

<form action="/upload/submit/" method="POST" encrypt="multipart/form-data">

これは

<form action="/upload/submit/" method="POST" enctype="multipart/form-data">

つまりenctype、そうではないencrypt

余談ですが、これを行うにはFormまたはを使用する必要があります。これにより、作業がずっと楽になります。ModelForm

于 2013-08-15T10:20:01.907 に答える