python django models.Model 遍历所有字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python django models.Model 遍历所有字段相关的知识,希望对你有一定的参考价值。
现在有
##########################################
class PCR(models.Model):
#所属的项目
project = models.ForeignKey(Project,verbose_name=("项目id"))
#日期
date = models.DateTimeField(verbose_name=("日期"))
#操作人
operator = models.ForeignKey(User,verbose_name=("操作人"))
#############################
....有好多modle
我想根据 类名变量出所有的字段和值在模版里显示
pcr = PCR.objects.get(id=1)
怎么遍历 pcr所有的字段verbose_name 和values
不是 pcr.project 这样啊
还有别的modle
如何在 django 中获得特定任务的批准
【中文标题】如何在 django 中获得特定任务的批准【英文标题】:How to get approval for a particular task in django 【发布时间】:2020-11-12 02:13:32 【问题描述】:我正在创建任务,我需要有一个用于批准的 URL。在这种情况下,创建任务实例的人可以请求其他用户(不一定是管理员)批准某些更改。这些批准请求将以表格的形式显示在批准者的仪表板上,他可以在其中批准/拒绝它们。 这是我的代码:
models.py:
class Approvals(models.Model):
task = models.ForeignKey(Task_category, on_delete=models.CASCADE)
requester = models.ForeignKey(User, related_name='Requester', on_delete=models.CASCADE)
priority = models.CharField(max_length=50)
approver = models.ForeignKey(User,related_name='Approver', on_delete=models.CASCADE)
description = models.CharField(max_length=400)
created_at = models.DateTimeField(auto_now_add=True)
due_date = models.DateField(null=True,blank=True)
approved = models.BooleanField(default=False)
views.py:
class PendingApprovals(viewsets.ModelViewSet):
http_method_names = ["get","update"]
queryset = Approvals.objects.all()
serializer_class = ApprovalSerializer
to_approved = Approvals.objects.filter(approver=request.user,approved='False')
我能够获得给定用户必须批准的所有任务的列表,但我不知道如何批准它们,即如何更改其布尔字段标签。 任何帮助将不胜感激。 TIA。
【问题讨论】:
【参考方案1】:您可以随时向您的模型添加一个方法,以便您可以通过 Approvals.set_approval() 访问它并切换它的当前批准状态。
class Approvals(models.Model):
task = models.ForeignKey(Task_category, on_delete=models.CASCADE)
requester = models.ForeignKey(User, related_name='Requester', on_delete=models.CASCADE)
priority = models.CharField(max_length=50)
approver = models.ForeignKey(User,related_name='Approver', on_delete=models.CASCADE)
description = models.CharField(max_length=400)
created_at = models.DateTimeField(auto_now_add=True)
due_date = models.DateField(null=True,blank=True)
approved = models.BooleanField(default=False)
def set_approval(self):
self.approved = not self.approved
【讨论】:
您能否详细说明它将如何提供帮助以上是关于python django models.Model 遍历所有字段的主要内容,如果未能解决你的问题,请参考以下文章