Ich habe zwei Modelle:django queryset von zwei Modellen
class AuthUser(models.Model):
id = models.IntegerField(primary_key=True)
password = models.CharField(max_length=128)
last_login = models.DateTimeField(blank=True, null=True)
is_superuser = models.BooleanField()
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
email = models.CharField(max_length=254)
is_staff = models.BooleanField()
is_active = models.BooleanField()
date_joined = models.DateTimeField()
username = models.CharField(unique=True, max_length=30)
class Meta:
managed = False
db_table = 'auth_user'
class SocialAuthUsersocialauth(models.Model):
id = models.IntegerField(primary_key=True) # AutoField?
provider = models.CharField(max_length=32)
uid = models.CharField(max_length=255)
user = models.ForeignKey(AuthUser, models.DO_NOTHING)
extra_data = models.TextField()
class Meta:
managed = False
db_table = 'social_auth_usersocialauth'
unique_together = (('provider', 'uid'),)
Ich brauche so etwas wie SQL JOIN zwischen ihnen und zu speichern verknüpften Tabelle in queryset zu machen.
Ich habe versucht, dies zu tun:
def namedtuplefetchall(cursor):
desc = cursor.description
nt_result = namedtuple('Result', [col[0] for col in desc])
return [nt_result(*row) for row in cursor.fetchall()]
def examp(request):
context = dict()
cursor = connection.cursor()
cursor.execute("""
SELECT *
FROM auth_user
JOIN social_auth_usersocialauth
ON auth_user.id = social_auth_usersocialauth.user_id
""")
context['usersauth'] = namedtuplefetchall(cursor)
return render(request, 'try.html', context)
Aber ich hatte Namen Ausnahme Encountered doppelten Feld: ‚id‘, die ich weiß nicht, wie zu behandeln.