【发布时间】:2020-04-18 04:27:03
【问题描述】:
您好,我正在尝试解决一个特定问题。我正在制作一个基于 3 个模型、任务模型、扩展用户模型(配置文件)和 django 默认用户模型的任务系统。我希望通过 sales_extras 字段显示被分配任务的人员的用户名,该字段是 User 模型的扩展模型。
这是我的模型
class Sales_taskings(models.Model):
sales_status= (
('p1','Phase 1'),
('p2','Phase 2'),
('p3','Phase 3'),
('p4','Phase 4'),
)
task_id = models.AutoField(primary_key=True)
sales_extras= models.ManyToManyField('sales.Sales_extras')
sales_project= models.ForeignKey('sales.Sales_project',on_delete=models.CASCADE)
description = models.TextField(max_length=200 , default='your notes' )
date_time = models.DateTimeField(auto_now=True)
status = models.TextField(max_length=10, choices= sales_status ,default='p1')
class Sales_extras(models.Model):
role= (
('sm','sales_manager'),
('s','sales'),
)
user = models.OneToOneField(User,on_delete=models.CASCADE)
user_type = models.TextField(max_length=500, choices= role)
这是我对上下文的看法
@login_required
def sales_taskboard(request):
authentication_classes = [SessionAuthentication, BasicAuthentication]
permission_classes = [IsAuthenticated]
sales_extras_id = Sales_taskings.objects.values('sales_extras').get('username')
print(Sales_taskings.objects.values('sales_extras'))
usernames = User.objects.values('username').filter(id__in = sales_extras_id)
print(usernames)
context = {
'sales_task' : Sales_taskings.objects.all(),
'sales_extras' : Sales_taskings.objects.values('sales_extras'),
'usernames' : usernames
}
return render(request, 'sales/taskboard.html',context)
对不起,我是 django 的新手,以上是我尝试获取用户名的方法。我觉得应该有一个内置的查询方法,使我能够链接我的 sales_takings 模型和我的 sales_extras 模型,最后链接到我的 User 模型。
您的帮助将不胜感激!
【问题讨论】:
-
不清楚您要达到的目标。
sales_taskboard视图的结果是什么? -
对不起,谢谢你提醒我,我在帖子里漏掉了。我希望显示被分配任务的人的用户名。这就是为什么我将 sales_extras 放置为 manytomany 字段,以便我可以将查询链接到我的用户模型以获取用户名
标签: python django django-models django-views django-queryset