我使用field_object = MyModel._meta.get_field(field_name)
得到了一个模型场对象。如何获取字段对象的值(内容)?
答案 0 :(得分:5)
(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