python django如何在单击单个员工的姓名时仅显示其相关信息

python django如何在单击单个员工的姓名时仅显示其相关信息,python,django,Python,Django,我是python django的新手,试图创建一个员工记录项目,在django管理站点上我添加了一些员工及其信息,在django站点上,我有一个针对单个员工的超链接,但是当我单击个人名称时,下一页显示的是所有员工信息,而不是特定的信息,我怎样才能只显示我单击的员工的信息?请帮忙,谢谢 models.py from django.db import models import datetime class Employee(models.Model): '''An employee's

我是python django的新手,试图创建一个员工记录项目,在django管理站点上我添加了一些员工及其信息,在django站点上,我有一个针对单个员工的超链接,但是当我单击个人名称时,下一页显示的是所有员工信息,而不是特定的信息,我怎样才能只显示我单击的员工的信息?请帮忙,谢谢

models.py

from django.db import models
import datetime

class Employee(models.Model):
    '''An employee's information.'''
    full_name = models.CharField(max_length=100)
    address = models.CharField(max_length=100)
    city = models.CharField(max_length=100)
    state = models.CharField(max_length=100)
    zip = models.CharField(max_length=100)
    hire_date = models.DateField(default=datetime.date.today)

    def __str__(self):
        '''Return a string representation of the model.'''
        return self.full_name
        return self.address
        return self.city
        return self.state
        return self.zip
        return self.hire_date
views.py

from django.shortcuts import render
from .models import Employee

def index(request):
    '''The home page for employee_record.'''
    return render(request, 'employee_records/base.html')

def employees(request):
    '''Shows all employees'''
    employees = Employee.objects.order_by('full_name')
    context = {'employees': employees}
    return render(request, 'employee_records/employees.html', context)

def employee(request, employee_id):
    '''Show a single employee and all his records.'''
    employee = Employee.objects.get(id=employee_id)
    objects = Employee.objects.all
    context = {'employee': employee, 'objects': objects}
    return render(request, 'employee_records/employee.html', context)
url.py

'''Defines URL patterns for employee_records.'''
from django.urls import path
from . import views

app_name = 'employee_records'
urlpatterns = [
    # Home page
    path('', views.employees, name='employees'),

    # Detail page for a single employee
    path('employees/<int:employee_id>/', views.employee, name='employee'),
]
''定义员工记录的URL模式''
从django.url导入路径
从…起导入视图
应用程序名称='员工记录'
URL模式=[
#主页
路径(“”,views.employees,name='employees'),
#单个员工的详细信息页面
路径('employees/',views.employee,name='employee'),
]
base.html

<p>
  <a href="{% url 'employee_records:employees' %}">Employee-Record</a>
</p>

{% block content %}{% endblock content %}

{%block content%}{%endblock content%}
employees.py

{% extends 'employee_records/base.html' %}

{% block content %}

  <ul>
    {% for employee in employees %}   

     <li>
        <a href="{% url 'employee_records:employee' employee.id %}">{{ employee }}</a>
     </li>

    {% empty %}

    {% endfor %}
  </ul>

{% endblock content %}
{%extends'employee_records/base.html%}
{%block content%}
    {employees%%中的员工为%s}
  • {%empty%} {%endfor%}
{%endblock内容%}
employee.html

{% extends 'employee_records/employees.html' %}

{% block content %}

  <p>{{ employee }}

    {% for object in objects %}
      <li>{{ object.full_name }}</li>
      <li>{{ object.address }}</li>
      <li>{{ object.city }}</li>
      <li>{{ object.state }}</li>
      <li>{{ object.zip }}</li>
      <li>{{ object.hire_date }}</li>

    {% empty %}

      <li>There are no records for this employee yet.</li>

    {% endfor %}
  </p>

{% endblock content %}
{%extends'employee_records/employees.html%}
{%block content%}
{{employee}}
{对象%中的对象的%}
  • {{object.full_name}
  • {{object.address}}
  • {{object.city}
  • {{object.state}
  • {{object.zip}}
  • {{object.hire_date}
  • {%empty%}
  • 还没有此员工的记录
  • {%endfor%}

    {%endblock内容%}
    models.py
    #您应该只有一个return语句
    员工类别(models.Model):
    “员工信息”
    全名=models.CharField(最大长度=100)
    地址=models.CharField(最大长度=100)
    城市=型号.CharField(最大长度=100)
    state=models.CharField(最大长度=100)
    zip=models.CharField(最大长度=100)
    hire\u date=models.DateField(默认值为datetime.date.today)
    定义(自我):
    ''返回模型的字符串表示形式''
    返回self.full\u名称
    views.py
    #你必须改变员工的职能
    def员工(请求、员工id):
    ''显示单个员工''
    尝试:
    employee=employee.objects.get(id=employee\u id)
    除Employee.DoesNotExist外:
    雇员=无
    上下文={'employee':employee}
    返回呈现(请求'employee_records/employee.html',上下文)
    employee.html
    {%extends'employee_records/employees.html%}
    {%block content%}
    {%if employee%}
    
    • {{employee.full_name}
    • {{employee.address}
    • {{employee.city}
    • {{employee.state}
    • {{employee.zip}
    • {{雇员.雇用日期}
    {%endif%} {%endblock内容%}
    实现它的另一种方法是使用内置的get\u object\u或\u 404方法

    个人观点
    您正在使用
    {%for objects%}
    对所有员工进行显式检查。
    models.py
    
    # you should have only one return statement
    
    class Employee(models.Model):
        '''An employee's information.'''
        full_name = models.CharField(max_length=100)
        address = models.CharField(max_length=100)
        city = models.CharField(max_length=100)
        state = models.CharField(max_length=100)
        zip = models.CharField(max_length=100)
        hire_date = models.DateField(default=datetime.date.today)
    
        def __str__(self):
            '''Return a string representation of the model.'''
            return self.full_name
    
    
    views.py
    
    # you have to change employee function
    
    def employee(request, employee_id):
        '''Show a single employee'''
        try:
            employee = Employee.objects.get(id=employee_id)
        except Employee.DoesNotExist:
            employee = None
    
        context = {'employee': employee}
        return render(request, 'employee_records/employee.html', context)
    
    
    
    employee.html
    
    {% extends 'employee_records/employees.html' %}
    
    {% block content %}
    
    {% if employee %}
        <ul>
            <li>{{ employee.full_name}}</li>
            <li>{{ employee.address}}</li>
            <li>{{ employee.city}}</li>
            <li>{{ employee.state}}</li>
            <li>{{ employee.zip}}</li>
            <li>{{ employee.hire_date}}</li>
        </ul>
    {% endif %}
    
    {% endblock content %}
    
    from django.shortcuts import get_object_or_404
    
    def employee(request, employee_id):
        employee = get_object_or_404(Employee, employee_id=employee_id)
        context = {'employee': employee}
        return render(request, 'employee_records/employee.html', context)