Python 按ID显示内容(views.py)
我开发了一个用于实践的大学系统应用程序,遇到了这样的问题:我必须显示属于某个主席的专业列表。这里的问题是:Python 按ID显示内容(views.py),python,django,Python,Django,我开发了一个用于实践的大学系统应用程序,遇到了这样的问题:我必须显示属于某个主席的专业列表。这里的问题是:http://127.0.0.1:8000/chairs/1,http://127.0.0.1:8000/chairs/2等显示了与此屏幕截图类似的所有专业化。但我只想根据椅子id显示它们。以下是我的代码: views.py: def list_of_specialties(request, chair_id): chairs = Chair.objects.all() i
http://127.0.0.1:8000/chairs/1
,http://127.0.0.1:8000/chairs/2
等显示了与此屏幕截图类似的所有专业化。但我只想根据椅子id显示它们。以下是我的代码:
views.py:
def list_of_specialties(request, chair_id):
chairs = Chair.objects.all()
if chair_id:
chair_id = get_object_or_404(Chair, id=chair_id)
bachelor_sp = Specialty.objects.filter(degree_id=1)
master_sp = Specialty.objects.filter(degree_id=2)
phd_sp = Specialty.objects.filter(degree_id=3)
context = {
'chairs': chairs,
'chair_id': chair_id,
'bachelor_sp': bachelor_sp,
'master_sp': master_sp,
'phd_sp': phd_sp,
}
return render(request, 'specialties.html', context)
URL.py:
urlpatterns = [
path('', views.index, name='index'),
path('chairs', views.chairs, name='chairs'),
path('chairs/<int:chair_id>', views.list_of_specialties, name='list_of_specialties'),
path('chairs/<int:chair_id>/<int:specialty_id>', views.list_of_specializations, name='list_of_specializations'),
]
只需在
椅子上进行筛选
以及学位
:专业.objects.filter(椅子=椅子id,学位id=1)
。请注意,您在这里弄乱了名称(chair\u id
不应该像您那样被chair
实例替换)。不应该使用绝对外键值,如1、2、3。获取与学士学位对应的实际学位
实例,并对其进行筛选。“你们不应该依赖那个样的身份证。”迪克格洛顿,我刚刚自己解决了这个问题,但再次感谢你们,老兄!
class Chair(models.Model):
def __str__(self):
return self.name
name = models.CharField(max_length=100)
phone = models.CharField(max_length=30)
email = models.CharField(max_length=50)
chairman = models.CharField(max_length=30)
class Specialty(models.Model):
def __str__(self):
return self.name
name = models.CharField(max_length=100)
chair = models.ForeignKey(Chair, on_delete=models.CASCADE)
degree = models.ForeignKey(Degree, on_delete=models.CASCADE)