How to get the value of a Django Model Field object

前端 未结 3 1763
失恋的感觉
失恋的感觉 2021-01-31 09:28

I got a model field object using field_object = MyModel._meta.get_field(field_name). How can I get the value (content) of the field object?

相关标签:
3条回答
  • 2021-01-31 10:01

    If you want to access it somewhere outside the model You can get it after making an object the Model. Using like this

    OUSIDE THE MODEL CLAA:

    myModal = MyModel.objects.all()
    
    print(myModel.field_object)
    

    USING INSIDE MODEL CLASS
    If you're using it inside class you can simply get it like this

    print(self.field_object)
    
    0 讨论(0)
  • 2021-01-31 10:03

    Assuming you have a model as,

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

    Then you will get the value of name field of model instance by,

    sample_instance = SampleModel.objects.get(id=1)
    value_of_name = sample_instance.name
    0 讨论(0)
  • 2021-01-31 10:04

    Use value_from_object:

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

    Which is the same as getattr:

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

    Or if you know the field name and just want to get value using field name, you do not need to retrieve field object firstly:

    field_name = 'name'
    obj = MyModel.objects.first()
    field_value = getattr(obj, field_name)
    
    0 讨论(0)
提交回复
热议问题