9

djangoフォームを使用したビューで画像のアップロードを機能させるのを手伝ってもらえますか?

モデル.py

class User_Profile(models.Model):
    user = models.OneToOneField(User, unique=True, related_name='profile')
    photo  = models.ImageField(upload_to = 'profiles/', null=True, blank=True)

Forms.py

class ProfileForm(forms.ModelForm):
        class Meta:
            model = User_Profile
            exclude = ('user')

Views.py

    if request.method == 'POST':
        profile_form = ProfileForm(request.POST, instance=request.user.profile)

        if profile_form.is_valid():
            profile_form.save()
            return HttpResponseRedirect('/panel/correct/')

    else:
        profile_form = ProfileForm(instance=request.user.profile)

私のhtmlフォームにはすでに含まれていますenctype="multipart/form-data"

4

3 に答える 3

16

ファイルデータをフォームにバインドしていないようです。

profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.profile) 
于 2009-07-03T11:11:46.157 に答える
7

django-avatarプロジェクトを使用しないのはなぜですか(例に基づいて、プロジェクトにユーザー アバターを追加することを考えていると思います)。

最初に画像を表示する前に画像のサイズを変更する追加のタグを備えた、非常に優れたソリューションがあります。元の画像を保存し、ウェブサイトで受け入れたい画像サイズを定義すると、残りは自動的に行われます。

于 2009-07-03T10:53:05.967 に答える
3

これは、docsに従うだけの問題です。

投稿で正しいフォームの初期化を使用していません。特に、request.FILESパラメータがありません:

 form = ProfileForm(request.POST, request.FILES)

上記の後、アップロードされたファイルを FILES 配列から取得できます。

 photo_file = request.FILES['photo']
于 2009-07-03T18:02:26.160 に答える