Esta es una pregunta muy simple que me atascó. Tengo 2 tablas que están conectadas: Dealershiplistings, Dealerships. En mi sitio web, necesito mostrar el modelo, la marca y el año del automóvil (que están almacenados en DealershipListing, por lo que no tengo ningún problema con esta parte), pero también necesito imprimir la dirección que está almacenada en la tabla de Concesionarios. Puede alguien ayudarme con esto?
esto es lo que tengo para mis vistas.py
def store(request): dealer_list = Dealer.objects.all() car_list = DealershipListing.objects.all() context = {'dealer_list': dealer_list, 'car_list': car_list} return render(request, 'store/store.html', context)traté de hacer
{{%for car in car_list%}} <h6>{{car.year}} {{car.make}} {{car.model}}</h6> {% endfor %}que funciona perfectamente mostrando esos. Pero ahora, ¿cómo muestro la dirección del concesionario que vende el automóvil?
modelos.py
class Dealer(models.Model): dealersName = models.TextField(('DealersName')) zipcode = models.CharField(("zipcodex"), max_length = 15) zipcode_2 = models.CharField(("zipCode"), max_length = 15) state = models.CharField(("state"), max_length=5) address = models.TextField(("Address")) dealerId = models.IntegerField(("ids"), primary_key=True) def __str__(self): return self.dealersName class DealershipListing(models.Model): carID = models.IntegerField(("CarID"), primary_key=True) price = models.IntegerField(('price')) msrp = models.IntegerField(('msrp')) mileage = models.IntegerField(('mileage')) is_new = models.BooleanField(('isNew')) model = models.CharField(("Models"), max_length= 255) make = models.CharField(("Make"), max_length=255) year = models.CharField(("Year"),max_length=4) dealerID = models.ForeignKey(Dealer, models.CASCADE) def __str__(self): return self.year + " " + self.make + " " + self.modelEntonces parece que su pregunta es realmente How do I access data from a foreign key in a template?
¡La respuesta es refrescantemente simple!
{{car.dealerID.address}}
En una nota al margen, es posible que desee cambiar el nombre de dealerID a dealer , django manejará los nombres de las columnas de db como mejor le parezca, por lo que, si bien puede acceder a los datos con .dealer la columna db será nombrada dealer_id por django automáticamente. Cambiar el nombre del campo también hace que sea más obvio que acceder a él le dará un distribuidor y no su identificación.
llamar con el nombre del modelo es lo que prefiero usar
{{obj.related_table.field_name}}Creo que este patrón puede ayudarlo a resolver el problema relacionado con obtener el valor del campo relacionado