【发布时间】:2021-07-01 22:10:52
【问题描述】:
如何在下面的自定义字段中更改models.ForeignKey 字段的输出?
自定义字段:
class BetterForeignKey(models.ForeignKey):
def to_python(self, value):
print('to_python', value)
return {
'id': value.id,
'name_fa': value.name_fa,
'name_en': value.name_en,
}
def get_db_prep_value(self, value, connection, prepared=False):
print('get_db_prep_value')
return super().get_db_prep_value(value, connection, prepared)
def get_prep_value(self, value):
print('get_prep_value')
return super().get_prep_value(value)
并用于以下模型:
class A(models.Model):
...
job_title = BetterForeignKey(JobTitle, on_delete=models.CASCADE)
我想更改以下print(a.job_title) 语句的输出:
>>> a = A.objects.filter(job_title__isnull=False).last()
get_db_prep_value
get_prep_value
>>> print(a.job_title)
Developer
【问题讨论】:
标签: python django django-models django-rest-framework django-orm