如何获取Django模型字段对象的值

时间:2018-08-18 05:53:09

标签: python django django-models

我使用field_object = MyModel._meta.get_field(field_name)得到了一个模型场对象。如何获取字段对象的值(内容)?

3 个答案:

答案 0 :(得分:5)

使用value_from_object

(SELECT * FROM place where is_ad = 1 order by rand() limit 2)
union all
(SELECT * FROM place where is_ad <> 1 order by place_id)

field_name = 'name' obj = MyModel.objects.first() field_object = MyModel._meta.get_field(field_name) field_value = field_object.value_from_object(obj) 相同:

getattr

或者,如果您知道字段名称并且只想使用字段名称获取值,则无需首先检索字段对象:

field_name = 'name'
obj = MyModel.objects.first()
field_object = MyModel._meta.get_field(field_name)
field_value = getattr(obj, field_object.attname)

答案 1 :(得分:1)

如果要在模型之外的某个地方访问它,则可以在将对象制成模型之后获得它。像这样

OUSIDE THE MODEL CLAA

    set formula= REPLACE(upper(formula),upper(C_PHD_TAG), tagval);

    set @replacevalue=CONCAT('SELECT ',@formula);
    PREPARE myquery FROM @replacevalue;
    EXECUTE myquery;

使用内部模型类
如果您在课堂上使用它,可以像这样

myModal = MyModel.objects.all()

print(myModel.field_object)

答案 2 :(得分:0)

假设您有一个模型,

class SampleModel(models.Model):
    name = models.CharField(max_length=120)

然后,您将获得模型实例的name字段的值,

sample_instance = SampleModel.objects.get(id=1)
value_of_name = sample_instance.name