开发者社区 问答 正文

mysql表如何获得关于该id的名称方面?

在我的项目中,我的操作很复杂,因此当我选择部门时,我保存该项目的ID,并绑定到表以显示插入的记录,因此当我绑定部门时,我想绑定该部门的名称而不是该ID。请帮助我。

模型

class Department(models.Model):
  ACTIVE = 1
  INACTIVE = 2
  DELETED = 3
  STATUS_CHOICES = (
    (ACTIVE, 'active'),
    (INACTIVE, 'inactive'),
    (DELETED, 'deleted'),
  )
  department_id = models.AutoField(primary_key=True)
  department_name = models.CharField(max_length=30, null=False)
  created_on = models.DateTimeField(auto_now_add=True,  null=False)
  created_by = models.CharField(max_length=100, null=False)
  modified_on = models.DateTimeField(auto_now_add=True)
  modified_by = models.CharField(max_length=100)
  status = models.CharField(max_length=10, null=False, choices=STATUS_CHOICES)

 objects = UserManager()

  class Meta:
    managed = True
    db_table = "ht_department"

  def __str__(self):
    return self.department_id

表格

class EmpForm(ModelForm):
  class Meta:
      model = Employee
      fields = ["employee_id", "Name", "designation", "department_id", "manager_id", 
       "date_of_joining","date_of_birth", "location_id", "email", "contact_number",                  
         "password", "created_by", "modified_by", "status",   "user_type"]



class dept(ModelForm):
   class Meta:
      model = Department
      fields = ["department_id", "department_name", "created_by", "modified_by", "status"]


class EmpLoc(ModelForm):
  class Meta:
    model = Location
    fields = ["location_id", "location_name", "created_by", "modified_by", "status"]

html

<tbody id="myTable">
                {% for employee in employees %}

                <tr>
                    <td>{{ employee.employee_id}}</td>
                    <td>{{ employee.Name}}</td>
                    <td>{{ employee.designation}}</td>
                    <td>{{ employee.department_id}}</td>
                    <td>{{ employee.manager_id}}</td>
                    <td>{{ employee.location_id}}</td>
                    <td>

                        <a href="#editEmployeeModal" class="edit" data-toggle="modal"><i class="material-icons" data-toggle="tooltip" title="Edit"></i></a>
                        <a href="#deleteEmployeeModal" class="delete" data-toggle="modal"><i class="material-icons" data-toggle="tooltip" title="Delete"></i></a>
                    </td>
                </tr>
          {% endfor %}


            </tbody>

展开
收起
几许相思几点泪 2019-12-05 15:01:04 341 分享 版权
阿里云 AI 助理回答

在Django中,当你想要在模板中显示与外键关联的模型的某个字段(如部门名称而不是部门ID)时,你需要使用__来执行跨表查询。对于你的场景,你可以在模板中修改如下:

{% for employee in employees %}
    {{ employee.employee_id }}
    {{ employee.Name }}
    {{ employee.designation }}
    <!-- 修改这里,用department.department_name来获取部门名称 -->
    {{ employee.department.department_name }}
    {{ employee.manager_id }}
    {{ employee.location_id }}
    <a href="{% url 'edit_employee' employee.pk %}">Edit</a>
    <a href="{% url 'delete_employee' employee.pk %}">Delete</a>
{% endfor %}

确保你的Employee模型中department_id字段是一个ForeignKey指向Department模型,这样Django才能自动解析并提供.department这样的属性来访问关联的部门对象。

如果你的Employee模型定义如下,这应该已经是正确的了:

class Employee(models.Model):
    # 其他字段...
    department = models.ForeignKey(Department, on_delete=models.CASCADE)
    # ...

如果department_id直接是一个整数字段而非ForeignKey,你需要调整模型定义以使用ForeignKey,以便能够直接通过.department.department_name来访问部门名称。同时,请确保在进行此更改后迁移数据库。

此外,注意在实际应用中,通常不会直接在模板中硬编码URL和视图名称,而是使用Django的url模板标签来生成URL,如上面示例中的{% url 'edit_employee' employee.pk %}{% url 'delete_employee' employee.pk %}。请确保在你的urls.py中定义了相应的URL模式名称。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答