使用Django的UpdateView更新用户配置文件
我用一个配置文件扩展了用户。注册和登录工作正常,但我在实现UserPofile(用户+配置文件模型)时遇到了一个问题。 表单已呈现,但未存储。我不知道该去哪里找。有什么不对劲?如何调试这个 观点:使用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
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'
]