Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Django的UpdateView更新用户配置文件_Django_Django Views_Django Forms - Fatal编程技术网

使用Django的UpdateView更新用户配置文件

使用Django的UpdateView更新用户配置文件,django,django-views,django-forms,Django,Django Views,Django Forms,我用一个配置文件扩展了用户。注册和登录工作正常,但我在实现UserPofile(用户+配置文件模型)时遇到了一个问题。 表单已呈现,但未存储。我不知道该去哪里找。有什么不对劲?如何调试这个 观点: class UserSettings(UpdateView): template_name = 'users/settings.html' context_object_name = 'user' model = UserProfile form_class = Pro

我用一个配置文件扩展了用户。注册和登录工作正常,但我在实现UserPofile(用户+配置文件模型)时遇到了一个问题。 表单已呈现,但未存储。我不知道该去哪里找。有什么不对劲?如何调试这个

观点:

class UserSettings(UpdateView):
    template_name = 'users/settings.html'
    context_object_name = 'user'
    model = UserProfile
    form_class = ProfileUpdateForm


    def get_success_url(self):
        return reverse('users:user-settings', kwargs={'pk': self.get_object().id})


    def get_context_data(self, **kwargs):
        context = super(UserSettings, self).get_context_data(**kwargs)
        context['user_form'] = UserUpdateForm(instance=self.object.user)
        return context
型号:

from django.contrib.auth.models import User
from django.db.models.signals import post_save


class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    picture = models.ImageField(default='users/default_user.png', upload_to='users', blank=True, null=True)

def post_user_created_signal(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.create(user=instance)


post_save.connect(post_user_created_signal, sender=User)
表格:

class UserUpdateForm(UserChangeForm):
    class Meta:
        model = User
        fields = ['first_name', 'last_name']


class ProfileUpdateForm(forms.ModelForm):
    class Meta:
        model = UserProfile
        fields = [
            'picture'
            ]