Разрешить пользователю изменять свою картинку

Я сделал страницу редактирования пользователя, чтобы пользователь мог изменить модель (с помощью onetonefield)

Все работает, но ImageField не работает.

Всякий раз, когда я нажимаю кнопку отправки после того, как я загружаю некоторые файлы в поле изображения, поле изображения пользователя.

Это все еще пусто. Я не могу понять, почему это происходит, потому что с другими полями все в порядке.

Вот мой код

models.py

def user_path(instance, filename):
    from random import choice
    arr =[choice('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz') for _ in range(8)]
    pid = ''.join(arr)
    extension = filename.split('.')[-1]
    return 'hs/%s/%s.%s' % (instance.owner.username, pid, extension)

views.py

    def edit_profile(request):
    content = {}
    profile = request.user.get_username()
    if request.method == 'POST':
        form = EditProfileForm(request.POST, instance=request.user.userprofile)
        form2 = EditUserForm (request.POST, instance=request.user)
        content['form'] = form
        content['form2'] = form2

        if form.is_valid() and form2.is_valid():
            new_user = form.save()
            new_user2 = form2.save()
            return redirect('/moc/change-profile')

        else:
            if form.is_valid() and form2.is_valid():
                content['form.errors'] = form.errors
                content['form2.errors'] = form2.errors
                messages.warning(request, 'wrong')           
                return redirect('/moc/profile/edit/')

    else:
        form = EditProfileForm(instance=request.user)
        form2 = EditUserForm(instance=request.user)
        content['form']= form
        content['form2'] = form2
        return render(request, 'moc/editprofile.html', content)

forms.py

class EditProfileForm(forms.ModelForm):
    class Meta:
        model = userProfile
        fields = ('nick','profileimage',)

    def __init__(self, *args, **kwargs):
        super(EditProfileForm, self).__init__(*args, **kwargs)
        f = self.fields.get('user_permissions', None)
        if f is not None:
            f.queryset = f.queryset.select_related('content_type')

class EditUserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('email',)
    def __init__(self, *args, **kwargs):
        super(EditUserForm, self).__init__(*args, **kwargs)
        f = self.fields.get('user_permissions', None)
        if f is not None:
        f.queryset = f.queryset.select_related('content_type')

editprofile.html

<form method="post" enctype='multipart/form-data'>
{% csrf_token %}
{{ form.as_p }}
{{ form2.as_p }}
<button type="submit">수정</button>
</form>

что не так с imagefield?

0 ответов

Другие вопросы по тегам