gpt4 book ai didi

python - django对象从模型中获取两个字段到列表中

转载 作者:行者123 更新时间:2023-11-30 22:56:13 26 4
gpt4 key购买 nike

这是我的模型

class pdUser(models.Model):
Name = models.CharField(max_length=200)
Mobile = models.CharField(max_length=200)
PagerDutyID = models.CharField(max_length=200)
PagerDutyPolicyID = models.CharField(max_length=200)
PagerDutyPolicy = models.CharField(max_length=200)

我想要做的是按 PagerDutyPolicy 和 PagerDutyPolicyID 进行分组,并将其作为其自己的对象返回,仅具有唯一值

例如

Name: bob
PagerDutyPolicyID: 232
PagerDutyPolicy: Team 1

Name: Bill
PagerDutyPolicyID: 232
PagerDutyPolicy: Team 1

Name: Fred
PagerDutyPolicyID: 145
PagerDutyPolicy: Team 2

我需要的是一个只有

的对象
PolicyID: 145
Policy: Team 2

PolicyID: 232
Policy: Team 1

在其中,我该怎么做?

谢谢

最佳答案

您需要两个模型,以及它们之间的外键,例如:

from django.contrib.auth.models import User

class PagerDutyPolicy(models.Model):
# the model automatically gets an id field
policy_name = models.CharField(max_length=200)

class PagerDuty(models.Model):
# I'm assuming you wanted these to be related to users who can log in..
user = models.ForeignKey(User)
mobile = models.CharField(max_length=200)
policy = models.ForeignKey(PagerDutyPolicy)

获取所有政策:

PagerDutyPolicy.objects.all()

为 bob 创建一个新的 PagerDuty 对象,并在 Team 1 中与他对接:

PagerDuty.objects.create(
user=User.objects.get(username='bob'), # or create a new user
mobile='...',
# policy=PagerDutyPolicy.objects.get(policy_name='Team 1') # or..
policy=PagerDutyPolicy.objects.get(id=232)
)

如果您要按 policy_name 查找策略,该字段在模型定义中还应具有 db_index=True

关于python - django对象从模型中获取两个字段到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com