python - 如何在 django 中进行自动分配
问题描述
我正在做一个 django 项目。其中有两个表,一个是开发人员表,另一个是 Jira 表。developer table 和 jira table 以 m2m 关系连接。
这是我的model.py
class developer(models.Model):
Developer_Name = models.CharField(max_length=100, unique=True)
Role = models.CharField(max_length=500)
Level = models.CharField(max_length=30)
Expertise = models.CharField(max_length=200)
Availability_Hours = models.CharField(max_length=500)
def __str__(self):
return self.Developer_Name
class jira(models.Model):
Jira_ID = models.CharField(max_length=100, blank=True)
Jira_Story = models.CharField(max_length=500)
Short_Description = models.CharField(max_length=500)
Story_Points = models.CharField(max_length=30)
Sprint = models.CharField(max_length=200)
DX4C_Object = models.CharField(max_length=500)
Developer = models.ManyToManyField(developer)
Sandbox = models.ForeignKey(environments, on_delete=models.CASCADE, limit_choices_to={'Mainline': None},blank=True, null=True)
def developer_assigned(self):
return ",".join([str(p) for p in self.Developer.all()])
现在我的查询是如何设置一个规则,如果 Dx4c 对象正在更改,那么一个开发人员将根据该规则自动分配?这是我的观点.py
def dependency_management(request):
jira_story = jira.objects.all()
return render(request, 'hello/Dependency_Management.html', {'JIRA': jira_story})
我想让这种动态。我的意思是,如果每次我添加任何新的 DX4C 对象,则无需更改特定开发人员将根据规则分配的代码
解决方案
像这样的东西:
class Developer(models.Model):
name = models.CharField(max_length=100, unique=True)
role = models.CharField(max_length=500)
level = models.CharField(max_length=30)
expertise = models.CharField(max_length=200)
availability_hours = models.CharField(max_length=500)
def __str__(self):
return self.name
class Jira(models.Model):
Jira_ID = models.CharField(max_length=100, blank=True)
story = models.CharField(max_length=500)
story_points = models.CharField(max_length=30)
sprint = models.CharField(max_length=200)
DX4C_Object = models.CharField(max_length=500)
developers = models.ManyToManyField(developer)
sandbox = models.ForeignKey(
environments,
on_delete=models.CASCADE,
limit_choices_to={'Mainline': None},
blank=True, null=True,
)
def developer_assigned(self):
return ",".join(self.developers.values_list('name', flat=True))
def save(self, *args, **kwargs):
if pk := getattr(self, 'id', 0):
old_value = self.__class__.objects.get(id=pk).DX4C_Object
super().save(*args, **kwargs)
if pk and self.DX4C_Object != old_value:
# do sth
推荐阅读
- css - 平滑过渡悬停图像
- python-3.x - python 3.65插入查询引发操作错误
- xml - 通过扩展 XML Schema
元素 - java - 在java中获取声音样本的长度
- php - 清理从 PHP 数组转换的格式化 JSON
- elasticsearch - 使用 IntelliJ 中的 Elasticsearch 测试框架,如何解决关于 idea_rt.jar 的 jar 地狱?
- android - 使用图像打开 Snapchat
- grails3 - 带有 grails 3 的 eh-cache
- python - Pandas:如果关键字出现在任何列中,则选择行
- fastlane - 使用 fastlane 更新 CHANGELOG.md