KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to select from the join of the two related tables in DJango as shown below. But I am not able get the field name of the other table. In SQL we can write: select person.phonenumber,membership.* from membership where person=name ; This displays all the membership fields along with phonenumber , but in Django it throws error: Cannot resolve keyword 'phonenumber' into field I have even tried with select_related but no use. Am I doing anything wrong? model.py: from django.db import models # Create your models here. class Person(models.Model): name = models.CharField(primary_key=True,max_length=128) phonenumber = models.CharField(max_length=128) city = models.CharField(max_length=128) def __unicode__(self): return self.name class Membership(models.Model): person = models.ForeignKey(Person) date_joined = models.DateField() invite_reason = models.CharField(max_length=64) >>> print m.query SELECT `myapp_membership`.`id`, `myapp_membership`.`person_id`, `myapp_membership`.`date_joined`, `myapp_membership`.`invite_reason` FROM `myapp_membership` WHERE `myapp_membership`.`person_id` = x >>> m=Membership.objects.filter(person__name='x').select_related() >>> print m.query SELECT `myapp_membership`.`id`, `myapp_membership`.`person_id`, `myapp_membership`.`date_joined`, `myapp_membership`.`invite_reason`, `myapp_person`.`name`, `myapp_person`.`phonenumber`, `myapp_person`.`city` FROM `myapp_membership` INNER JOIN `myapp_person` ON (`myapp_membership`.`person_id` = `myapp_person`.`name`) WHERE `myapp_membership`.`person_id` = x >>> m=Membership.objects.filter(person__name='x').values('person','phonenumber').select_related() Traceback (most recent call last): File "<console>", line 1, in <module> F
Tags (comma-separated)
Save Edits
Cancel