【发布时间】:2019-01-03 06:04:54
【问题描述】:
我对来自 Laravel 背景的 Django 相当陌生。我想在每次查询时修改一个字段值。例如,每次查询 firstname@User 时,都会返回大写的名字。在 Laravel 中这被称为 Accessors 但显然访问器在 Django 中具有不同的含义。就我而言,我有一个名为 Meta 的键值表,其中 value 字段可以是任何类型:
class Meta(models.Model):
key = models.CharField(max_length=30)
value = models.TextField()
model = models.ForeignKey('Model', on_delete=models.CASCADE)
在获得值Meta.objects.get(key='foo') 后,我想返回ast.literal_eval(value) 以将字符串表达式转换为正确的相应类型。我做了一些研究,只发现以下内容:
- 创建自定义字段。
- 使用
get_foo_display(self),但据我所知,这只适用于 ChoiceField。
每次我查询value 过滤时应用此功能的最佳选择是什么key
【问题讨论】:
标签: django django-models