django - 使用 Django 使用 UpdateView 更新用户配置文件
问题描述
我用个人资料扩展了用户。注册和登录工作正常,但我在实现 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'
]
解决方案
推荐阅读
- xaml - 从右到左的本地化在 android 上不起作用
- javascript - 我怎样才能找到是否点击了屏幕的某个部分?
- azure-devops - 如何将 VS 2019 部署配置导入 Azure devops
- javascript - POST格式的javascript var LZstring
- c++ - OpenCL 中的图像灰度
- javascript - 我在哪里放置 npm 安装?
- javascript - datapicker beforeShowDay dataFormat问题
- python-3.x - 将列表列表的每个元素从 Python 输出到 .csv 文件
- java - 如何在 JOOQ 的 COALESCE 中使用 SUM
- javascript - 模块解析失败:意外的令牌,但已安装所有加载程序