我正在尝试创建一个工作委员会,用户可以在其中通过邮政编码搜索工作。我分离了有关 Business
的信息到一个模型和 Job
进入另一个。 Business
具有地址、州、电话号码字段等,而 Job
有关于工作本身的信息。我这样设计是为了让用户不必在每次发布职位时重新输入有关实体企业的信息。但是现在当我尝试查询 Job
时与输入的邮政编码相匹配,我真的必须捕获 Business
与该邮政编码匹配的对象,然后获取 Job
与它们相关的对象?这是我的代码:
模型.py
from django.db import models
from django.contrib.auth.models import User
class Business(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
zip_code = models.CharField(max_length = 10)
class Job(models.Model):
business = models.ForeignKey(Business, on_delete= models.CASCADE)
# ...
views.py:
def search_results(request):
query =request.GET.get('query')
jobs = Job.objects.filter(zipcode = query) # tried this before realizing the `zipcode` field was part of the `Business` model and not the `Job` model.
return render(request, 'job/search_results.html', { 'jobs': jobs})
感谢您的帮助。另外,这似乎是一个可能很常见的问题,但我不确定要搜索什么术语才能找到答案,因此,如果此问题已关闭,但您可以为我指出正确的方向,那就太好了!
最佳答案
您希望通过 Job
模型访问 Business
,就像使用 __
一样:
jobs = Job.objects.filter(business__zip_code=query)
More info: https://docs.djangoproject.com/en/3.0/topics/db/queries/#lookups-that-span-relationships
关于django - 使用查询来匹配对象,然后通过外键获取关联的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59921759/