我有两种型号:
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'),)
我需要在它们之间进行类似SQL连接的操作,并将联接表存储在queryset中。在
我试着这么做:
^{pr2}$但我有个例外,遇到了重复的字段名:“id”,我不知道如何处理。在
应将rename=True属性添加到namedtuple调用
您应该使用}来实现这些目的。
select_related
和{当您想要从相关模型获取表时,请使用“select \u related”:
如果要获取所有相关表,请使用“prefetch_related”:
^{pr2}$它将向您的查询集添加附加属性,并带有相关字段的名称。另外,最好在
ForeignKey
中添加属性related_name
,以获得更明确的用法。在相关问题 更多 >
编程相关推荐