问题描述
我正在处理一个管理一些项目的Django项目。 在视图中,我只需要显示已登录用户的项目,但是我所做的一切都无法正常工作,而且我真的不知道还能尝试什么。我是编程新手。
基本上我的应用程序具有一个工作模型,该工作模型只有一个字段:worker = models.ForeignKey(User)
然后它有一个只有一个字段的“负责任模型”:responsable = models.ForeignKey(User) 我有这两种模型,因为我需要将工作人员和负责人中的用户分开。
这是我的项目模型:
<?php
Route::group([
'prefix' => config('backpack.base.route_prefix','admin'),'namespace' => 'App\Http\Controllers\Admin',],function () {
// routes to override others from Backpack
Route::crud('user','UserCrudController');
});
这是我的观点。py:
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)
但是我得到一个错误: 无法查询“ Simone”:必须是“ Worker”实例。
我认为问题在于,在我的项目模型中,worker字段具有Worker而不是User的外键,但是我无法更改它,所以我该怎么办?
解决方法
基于评论
基本上,我的应用程序具有一个工作模型,该工作模型仅具有一个字段:
worker = models.ForeignKey(User)
,您应该访问worker
模型的Worker
字段,因此:
user_projects = Project.objects.filter(worker__worker=user).order_by('deadline')
因此,第一个worker
遵循从ForeignKey
模型到Project
模型的Worker
,第二个worker
来自Worker
到User
模型。