【问题标题】:How to get name respect to that id form mysql table?如何从 mysql 表中获取该 id 的名称?
【发布时间】:2019-12-05 06:44:06
【问题描述】:

在我的项目中,我有类似 crud 的操作,所以当我选择部门时,我保存该项目的 id,并绑定到表以显示插入的记录,所以当我绑定部门时,我想绑定该部门的名称而不是那个 id .请在这方面帮助我..

模型.py

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

forms.py

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">&#xE254;</i></a>
                        <a href="#deleteEmployeeModal" class="delete" data-toggle="modal"><i class="material-icons" data-toggle="tooltip" title="Delete">&#xE872;</i></a>
                    </td>
                </tr>
          {% endfor %}
            </tbody>

这是我为 EmployeeModel 更新的代码:

Employee Model (Updated)   

   class Employee(models.Model):
     ACTIVE = 1
     INACTIVE = 2
     DELETED = 3
     STATUS_CHOICES = (
    (ACTIVE, 'active'),
    (INACTIVE, 'inactive'),
    (DELETED, 'deleted'),
   )
   USER_TYPE = (
    (1, 'user'),
    (2, 'hr'),
   )
  employee_id = models.CharField(max_length=15, primary_key=True)
  Name = models.CharField(max_length=100, null=False)
  designation = models.CharField(max_length=30, null=False)
  department_id = models.IntegerField(null=False)
  manager_id = models.CharField(max_length=15, null=False)
  date_of_joining = models.DateField(null=False)
  date_of_birth = models.DateField(null=False)
  location_id = models.IntegerField(null=False)
  email = models.EmailField(max_length=100, unique=True,  
  null=False)
  contact_number = models.CharField(max_length=10 , unique=True,   
  null=False)
  password = models.CharField(max_length=100, null=False)
  created_on = models.DateTimeField(auto_now_add=True)
  created_by = models.CharField(max_length=100, null=False)
  modified_on = models.DateTimeField(auto_now_add=True)
  modified_by = models.CharField(max_length=100, null=True)
  status = models.CharField(max_length=10, null=False, 
  choices=STATUS_CHOICES)
  user_type = models.CharField(max_length=10, choices=USER_TYPE)
  objects = UserManager()

USERNAME_FIELD = "email"
REQUIRED_FIELDS = ["Name"]

is_anonymous = "FALSE"
is_authenticated = "TRUE"

class Meta:
    managed = True
    db_table = "ht_employee"

【问题讨论】:

  • 请展示员工模型。
  • 你试过{{ employee.department_id.department_name}}吗?
  • @JPG 我试过你的但没用..
  • 您的模型设计错误。你应该寻找 ForeignKey 关系。在 Employee 中创建以 Department 模型为 ForeignKey 的关系

标签: mysql django


【解决方案1】:

您应该将员工中的 department_id 字段更新为外键,以获取部门名称,因此它将如下所示:

class Employee(models.Model):
     department = models.ForeignKey(Department)

然后在模板中获取部门名称

{{employee.department.department_name}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 2022-01-25
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多