it-swarm.com.de

So erhalten Sie den Wert eines Django Model Field-Objekts

Ich habe ein Modellfeldobjekt mit field_object = MyModel._meta.get_field(field_name) erhalten. Wie kann ich den Wert (Inhalt) des Feldobjekts erhalten?

9
HuLu ViCa

Verwenden 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)

Welches ist das gleiche wie getattr:

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

Oder wenn Sie den Feldnamen kennen und den Wert nur über den Feldnamen erhalten möchten, müssen Sie das Feldobjekt nicht erst abrufen:

field_name = 'name'
obj = MyModel.objects.first()
field_value = getattr(obj, field_name)
12
awesoon

Angenommen, Sie haben ein Modell als,

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

Dann erhalten Sie den Wert von name Feld der Modellinstanz von,

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

Wenn Sie außerhalb des Modells darauf zugreifen möchten Sie können darauf zugreifen, nachdem Sie ein Objekt zum Modell gemacht haben. So verwenden

AUSSERHALB DES MODELLS CLAA:

myModal = MyModel.objects.all()

print(myModel.field_object)

INNERHALB DER MODELLKLASSE
Wenn du es im Unterricht benutzt, kannst du es einfach so bekommen

print(self.field_object)
0
root