我有一句pythonDjango语言c_message = models.Courseinfo.objects.filter(Course__course_name__contains=value) 想要用django实现对一个表里的外键的模糊查询,但是由于外键不能被外键直接模糊查询所以在前面加上了Course__想要实现跨表的 对外键的模糊查询但是他还是会报错Cannot resolve keyword 'Course' into field. Choices are: course_file, course_info, course_ltime, course_name, course_name_id, course_picture, course_video, id
时间: 2023-11-28 07:48:17 浏览: 88
StuManage.rar_StuManage_sql server_sql 数据库_教务管理_教务管理系统
你可以尝试使用双下划线来跨表查询外键所在的表的字段,例如:
```python
c_message = models.Courseinfo.objects.filter(course__course_name__contains=value)
```
假设 `Courseinfo` 模型中的外键字段为 `course`,并且 `Course` 模型中有一个名为 `course_name` 的字段,则使用 `course__course_name` 来进行跨表查询。注意,这里的 `course` 应该是外键字段 `course` 的小写形式。
如果仍然出现类似的错误,可能是因为未正确设置外键关系。你可以在 `Courseinfo` 模型中的外键字段上添加 `related_name` 参数,以便在查询时更容易引用外键所在的模型,例如:
```python
class Courseinfo(models.Model):
course = models.ForeignKey(Course, on_delete=models.CASCADE, related_name='courseinfo')
# ...
```
这样,你就可以使用 `course__course_name` 或者 `courseinfo__course_name` 来进行跨表查询了。
阅读全文