|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 abababab 于 2023-4-25 23:33 编辑
以下是一个示例代码
models.py
- from django.db import models
- class Profile(models.Model):
- user = models.OneToOneField(User, on_delete=models.CASCADE)
- name = models.CharField(max_length=50)
- age = models.IntegerField()
- phone = models.IntegerField()
- def save(self, *args, **kwargs):
- # 在保存前更新指定一列数据
-
- super(Profile, self).save(*args, **kwargs)
复制代码
view.py
- def activate(request, uid):
- profile = Profile.objects.get(user_id=uid)
- profile.phone = "123456789"
- psave=profile.save()
- print(psave)
复制代码
Django models 自定义一个Profile数据表,保存其中一值 phone 问题?
程序返回 None
但实际数据没有存进去的。
请教下大佬了,感谢!
很高兴您找到了问题所在。如果您想要确定是哪个函数调用了 `save()` 方法并覆盖了数据,您可以尝试在 `Profile` 模型的 `save` 方法中添加一些调试信息。这将帮助您追踪到调用 `save()` 的函数。在 `models.py` 中,可以更新 `Profile` 模型的 `save` 方法,如下所示:
- import traceback
- class Profile(models.Model):
- ...
-
- def save(self, *args, **kwargs):
- # 在保存前更新指定一列数据
- # 添加调试信息,显示调用 save 方法的位置
- print(f"Saving Profile for user: {self.user.username}")
- traceback.print_stack(limit=4) # 限制输出堆栈的深度,以便于阅读
-
- super(Profile, self).save(*args, **kwargs)
复制代码
使用 `traceback.print_stack()` 函数,您可以在控制台中看到调用 `save()` 方法的堆栈跟踪。这将帮助您确定是哪个函数导致了问题。在修复问题后,您可以将调试信息从 `save()` 方法中删除。
|
|