我是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)
urls.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'),
]
base.html
<p>
<a href="{% url 'employee_records:employees' %}">Employee-Record</a>
</p>
{% block content %}{% endblock content %}
员工
{% 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 %}
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 %}
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 %}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句