django-models - 从另一个字段获取 django 模型字段
问题描述
我有这个模型
class Person(models.Model):
picture = models.ImageField(
default='default.jpg', upload_to='profile_pics', )
firstName = models.CharField(blank=True, max_length=100)
familyName = models.CharField(blank=True, max_length=100)
age = models.IntegerField(default=0)
GENDER = [
("M", 'Male'),
("F", 'Female'),
("U", 'UNKNOWN'),
]
gender = models.CharField(
max_length=2,
choices=GENDER,
default="U",
)
address = models.CharField(blank=True, max_length=100)
remark = models.TextField(default="no remark")
description_vector = models.TextField(blank=True)
每当我添加新人员或更改模型图像时(如果图像没有更改,我不想更改 description_vector )我知道我可以使用像这里 这样的保存方法,但我不知道如何指定当图像更改矢量更改时。
我不知道它是否会改变任何东西,但我使用django-rest-framowrk来添加和更改我认识的人
解决方案
我不确定我是否理解您的具体疑问,但我认为这可能会有所帮助。
def save(self, *args, **kwargs):
if self.id is not None: # check only when update
original_picture = self.objects.get(id=self.id).picture
if original_picture !== self.picture # You must add here your method to evaluate if both images are equal
self.vector = some_method_to_change_vector(self.picture)
return super().save(*args, **kwargs)
推荐阅读
- css - 创建弯曲的页脚
- javascript - Javascript检查数组json中是否存在值
- swift - 如何正确构建 NSPredicate 以从具有特定日期标签的 CoreData 对象创建值数组?
- html - Ruby on Rails:如何让 Each_do_with_index 不更新我的对象的索引?
- xamarin.forms - 以 Xamarin 形式下载文件
- c# - Asp.net WebApi.core 与我的项目不兼容
- c# - 将 ASP.Net Core 集成到 WPF 应用程序中
- sql - IF子查询需要测试几个值
- python - 同目录导入python文件失败(2.2版)
- javascript - 如何获得最长的相等字符序列,如果超过一个,它们有多少?