首页 > 解决方案 > 在django中选择进程数时重复客户端和进程创建

问题描述

这是我在这个 html 中的 html 文件,我在 DB 中获得了保存的客户端和进程列表,当时得到了重复。

html

<tbody>
     {% for object in emp_obj %}
        <tr>
            <td>
               {{ object.process.client }}<br />
            </td>
            <td>
                {% for obj in emp_obj %}
                    {% if obj.process.client == object.process.client %}
                       {{ obj.process.process }}<br />
                    {% endif %}
                {% endfor %}
            </td>
        </tr>
    {% endfor %}
</tbody>

在 views.py 中,我根据 Emp_Profile ID 获取 Emp_Process 列表并将 emp_object 传递给模板

视图.py

def Emp_CP_View(request, id):
    emp = Emp_Profile.objects.get(pk=id)
    print(emp)
    emp_obj = Emp_Process.objects.filter(username = emp)
    print(emp_obj)
    return render(request, 'employee_view.html',{'emp_obj' : emp_obj})

下图是我得到了重复的数据 复制图像

模型.py

我的项目中有 7 个模型

class Department(models.Model):
    Name = models.CharField(max_length=50)
    def __str__(self):
        return self.Name
    class Meta:
        db_table = 'department'

class Designation(models.Model):
    Name = models.CharField(max_length=50)
    department = models.ForeignKey(Department, on_delete=models.CASCADE)
    def __str__(self):
        return self.Name
    class Meta:
        db_table = 'desingnation'


class Emp_Profile(AbstractUser):
    Mobile_Number = models.IntegerField(null=True,blank=True)
    department = models.ForeignKey(Department, null=True, blank=True, on_delete=models.CASCADE)
    designation = models.ForeignKey(Designation, null=True, blank=True, on_delete=models.CASCADE)
    def __str__(self):
        return self.username

    class Meta:
        db_table = 'emp_table'
class Process(models.Model):
        Name = models.CharField(max_length=50)
        def __str__(self):
            return self.Name
        class Meta:
            db_table : 'process'

    class Client(models.Model):
        Name = models.CharField(max_length=50, unique=True)
        def __str__(self):
            return self.Name
        class Meta:
            db_table : 'client'

    class Client_Process(models.Model):
        process = models.ForeignKey(Process, on_delete=models.CASCADE)
        client = models.ForeignKey(Client, on_delete=models.CASCADE)
        class Meta:
            db_table : 'client_process'


    class Emp_Process(models.Model):
        username = models.ForeignKey(Emp_Profile, on_delete=models.CASCADE)
        process = models.ForeignKey(Client_Process, on_delete=models.CASCADE)
        class Meta:
            db_table : 'emp_process'

标签: djangodjango-modelsdjango-rest-frameworkdjango-templatesdjango-views

解决方案


推荐阅读