Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

450
Views
¿Cómo puedo obtener el valor de la tabla de clave externa en lugar de id en Django rest_framework?

Recientemente comencé con Django Framework y estoy atascado en esta situación, intenté leer la documentación, pero mi falta de experiencia no puedo entender mucho. ¿Hay alguna forma en que podamos obtener la respuesta que queríamos manteniendo las comprobaciones predeterminadas de Django, la validación tanto como sea posible? Intenté usar def to_representation pero aún así me da una respuesta nula cuando depuro.

caso de uso: menciono el modelo a continuación, quiero un valor de clave externa como texto almacenado en la tabla status_lookup.name de la tabla de productos

 class product_serializer(serializers.ModelSerializer): status = status_lookup_serializer(read_only=True,many=False) class Meta: model = product fields = ('id','name','status_id','status')

modelo.py

 class status_lookup(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=30) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(blank=True) activation_date = models.DateTimeField(auto_now_add=True) deactivation_date = models.DateTimeField(blank=True,default=None) def __str__(self): return self.name class product(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=30) img_url = models.CharField(max_length=255,blank=True) status_id = models.ForeignKey(status_lookup, related_name='status', on_delete=models.CASCADE) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(blank=True) activation_date = models.DateTimeField(auto_now_add=True) deactivation_date = models.DateTimeField(blank=True,default=None) def __str__(self): return self.name

o/p ingrese la descripción de la imagen aquí

deseo

 [ { "id":1, "name":"xxx", "status":pending } ]
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Comprueba si esto te puede ayudar. es un enlace de documentación para Django-rest-framework

https://www.django-rest-framework.org/api-guide/serializers/

over 4 years ago · Santiago Trujillo Report

0

Pude hacerlo con esto. No sé si es la forma óptima de hacerlo o no, pero mantendré esta pregunta abierta hasta que encuentre una respuesta.

 class statusField(serializers.RelatedField): def to_representation(self, value): return { 'name':value.name } class product_serializer(serializers.ModelSerializer): status_id = statusField(many=False,read_only=True) class Meta: model = product fields = ('id','name','status_id')

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!