As per your models.
class Member(models.Model):
openid = models.CharField(max_length=32)
....more data ...
class MemberProfile(models.Model):
member = models.ForeignKey(Member)
position = models.ForeignKey(Position)
....more data ...
It is not much inconvenient to get MemberProfile
data if we are having Member
object
member_object = Member.objects.get(id=1)
print member_object.memberprofile_set.all() # here you can access MemberProfile
#data by using reverse relationship
you can customize result as per your need like below :
print member_object.memberprofile_set.filter(mobile='9717353657')
print member_object.memberprofile_set.filter(mobile='9717353657').values_list('email')
also it is better to making Member
model as master table.