django - 仅显示登录用户的项目
问题描述
我正在开发一个管理一些项目的 django 项目。在一个视图中,我必须只显示登录用户的项目,但我所做的一切都不起作用,我真的不知道还能尝试什么。我是编程新手。
基本上我的应用程序有一个只有一个字段的 Worker 模型:worker = models.ForeignKey(User)
然后它有一个只有一个字段的责任模型: responsable = models.ForeignKey(User) 我有这两个模型,因为我需要将工人和责任人中的用户分开。
这是我的项目模型:
class Project(models.Model):
title = models.CharField(max_length=255)
description = models.CharField(max_length=1000)
client = models.ForeignKey(Cliente, on_delete=models.CASCADE)
complete = models.BooleanField(default=False)
urgent = models.BooleanField(default=False)
deadline = models.DateField()
worker = models.ForeignKey(Worker, on_delete=models.CASCADE)
responsable = models.ForeignKey(Responsable, on_delete=models.CASCADE)
这是在我的views.py中:
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from .models import Project
@login_required(login_url='/accounts/login/')
def projectsWorkers(request):
user = request.user
user_projects = Project.objects.filter(worker=user).order_by('deadline')
template = 'projects/projects-worker-home.html'
return render(request, template, {'user_projects': user_projects, 'user': user})
但我收到一个错误:无法查询“Simone”:必须是“Worker”实例。
我认为问题在于,在我的项目模型中,worker 字段具有 Worker 而不是 User 的外键,但我无法更改它,那我该怎么办?
解决方案
根据评论
基本上我的应用程序有一个只有一个字段的 Worker 模型:
worker = models.ForeignKey(User)
,您应该访问模型的worker
字段,Worker
以便:
user_projects = Project.objects.filter(worker__worker=user).order_by('deadline')
因此,第一个worker
遵循ForeignKey
从Project
模型到Worker
模型,第二个遵循worker
从Worker
模型到User
模型。
推荐阅读
- python - 在 Python 3 上向 App Engine 添加预热请求
- javascript - Pushing multiple items into an array within an instance of a class
- design-patterns - 剪辑模式匹配
- javascript - Mout.js 节流函数中的 ESLint 错误
- c - Linux 是如何遍历它的设备树的?
- mysql - MySQL:选择只有名称不同的所有行
- python - Sublime Text 3 中的 PyTorch 自动完成(代码完成)
- xamarin.forms - 嵌入 xamarin 表单内容页面
- python - ProgrammingError: ('SQL 包含 0 个参数标记,但提供了 13 个参数', 'HY000')
- sql - 如何避免使用触发器删除每个请求超过 1 行?