我有以下类在我的models.py
class Users(models.Model):
username = models.CharField('User Name', null=False, max_length = 50)
password = models.CharField('User Password', max_length=50)
def __str__(self):
return self.username
class Photo(models.Model):
name = models.CharField(max_length=100, default="Image")
id = models.AutoField(primary_key=True)
uploader = models.ForeignKey(Users, default=None, on_delete=models.CASCADE)
def __str__(self):
return self.name
class Photo_History(models.Model):
image = models.ImageField(upload_to="media/results")
upload_time = models.DateTimeField(auto_now_add=True, blank=True)
photo_id = models.ForeignKey(Photo, null=True, blank=True, on_delete=models.CASCADE)
表结构如下,
对于用户类,
用户名 | 密码 | abc | 123 | 12月
---|---|
123 | |
123 |
通过Django文档,我发现Django添加了一个_id
外键name.
因此,我能够通过将p.uploader
更改为p.uploader_id
来解决我的问题。一个奇怪的问题,但这就是Django模型的工作方式。
最后的查询是,
q = "select h.id, p.name, h.image, h.upload_time from firstApp_Photo_History h, firstApp_Photo p where p.uploader_id=%s;"