在 Django 中有没有办法使用 ORM 编写查询,而不是原始 SQL,它允许您在没有外键的情况下加入另一个表?查看它出现的文档以使一对一关系起作用,必须存在外键吗?
在下面的模型中,我想在 UserActivity.request_url 上运行一个 JOIN 查询到 UserActivityLink.url。
class UserActivity(models.Model):
id = models.IntegerField(primary_key=True)
last_activity_ip = models.CharField(max_length=45L, blank=True)
last_activity_browser = models.CharField(max_length=255L, blank=True)
last_activity_date = models.DateTimeField(auto_now_add=True)
request_url = models.CharField(max_length=255L, blank=True)
session_id = models.CharField(max_length=255L)
users_id = models.IntegerField()
class Meta:
db_table = 'user_activity'
class UserActivityLink(models.Model):
id = models.IntegerField(primary_key=True)
url = models.CharField(max_length=255L, blank=True)
url_description = models.CharField(max_length=255L, blank=True)
type = models.CharField(max_length=45L, blank=True)
class Meta:
db_table = 'user_activity_link'
链接表对系统中的给定 URL 进行了更具描述性的翻译,这是系统将生成的某些报告所必需的。
我尝试创建从 UserActivity.request_url 到 UserActivityLink.url 的外键,但失败并出现以下错误:错误 1452:无法添加或更新子行:外键约束失败