Python Django:我如何访问和显示单曲的详细信息;“儿童”;在一对多的关系中?
我有两个模型-公司和部门。该公司可以有许多部门-这是所有与外键和预期的工作。我有很好的URL和模板/视图设置,我可以添加公司,然后我可以添加部门。我还能够访问和创建新的部门,并将其分配给公司 例如,我在系统中使用的最后5家公司和最后5个部门:Python Django:我如何访问和显示单曲的详细信息;“儿童”;在一对多的关系中?,python,django,Python,Django,我有两个模型-公司和部门。该公司可以有许多部门-这是所有与外键和预期的工作。我有很好的URL和模板/视图设置,我可以添加公司,然后我可以添加部门。我还能够访问和创建新的部门,并将其分配给公司 例如,我在系统中使用的最后5家公司和最后5个部门: class IndexView(generic.ListView): model = Company template_name = 'company/index.html' context_object_name = 'l
class IndexView(generic.ListView):
model = Company
template_name = 'company/index.html'
context_object_name = 'latest_company_list'
def get_queryset(self):
"""Return the last five created companies."""
return Company.objects.order_by('company_name')[:5]
class DeptIndexView(generic.ListView):
model = Department
template_name = 'department/index.html'
context_object_name = 'latest_department_list'
def get_queryset(self):
"""Return the last five created companies."""
return Department.objects.order_by('dept_name')[:5]
下面是models.py中的模型
class Company(models.Model):
company_name = models.CharField(max_length=200)
company_dba = models.CharField(max_length=200)
class Meta:
verbose_name_plural = "companies"
def __str__(self):
return self.company_name
# on submit click on the company entry page, it redirects to the url below.
def get_absolute_url(self):
return reverse('company:index')
class Department(models.Model):
company = models.ForeignKey(Company, on_delete=models.CASCADE)
dept_name = models.CharField(max_length=200)
dept_code = models.IntegerField(default=0)
def __str__(self):
return self.dept_name
# on submit click on the department entry page, it redirects to the url below.
def get_absolute_url(self):
return reverse('company:index')
我的url.py文件如下所示
app_name = 'company'
urlpatterns = [
# Company management views
path('', views.IndexView.as_view(), name='index'),
path('<int:pk>/', views.DetailView.as_view(), name='detail'),
path('add/', views.CompanyEntry.as_view(), name='add'),
path('update/<int:pk>/', views.CompanyUpdate.as_view(), name='update'),
path('delete/<int:pk>/', views.CompanyDelete.as_view(), name='delete'),
#Department management views
path('<int:pk>/department/', views.DeptIndexView.as_view(), name='dept_index'),
path('<int:pk>/department/add/', views.DeptEntry.as_view(), name='dept_add'),
path('<int:pk>/department/<int:fk>/', views.DeptDetailView, name='dept_detail'),
]
app_name='company'
URL模式=[
#公司管理层意见
路径(“”,views.IndexView.as_view(),name='index'),
路径('/',views.DetailView.as_view(),name='detail'),
路径('add/',views.CompanyEntry.as_view(),name='add'),
路径('update/',views.CompanyUpdate.as_view(),name='update'),
路径('delete/',views.CompanyDelete.as_view(),name='delete'),
#部门管理意见
路径('/department/',views.DeptIndexView.as_view(),name='dept_index'),
路径('/department/add/',views.DeptEntry.as_view(),name='dept_add'),
路径('/department/',views.DeptDetailView,name='dept_detail'),
]
这里的问题是,我不知道如何配置URL/路径,以便访问单个部门的详细信息
我正试图得到一些东西,比如2是部门模型的id
上面代码的最后一行似乎不起作用
相反,我认为这是一个错误:
位于/company/1/department/2的类型错误/
init()接受1个位置参数,但给出了2个
请求方法:获取
请求URL:
Django版本:2.2.4
异常类型:TypeError
异常值:
init()接受1个位置参数,但给出了2个
异常位置:/Users/ABC/DjangoHR/lib/python3.7/site-packages/django/core/handlers/base.py在_get_response,第113行我找到了它-我错过了。as_view()
path('/department/',views.DeptDetailView.as_view(),name='dept_detail'),
谢谢大家的帮助和评论 我明白了-我错过了
path('/department/',views.DeptDetailView.as_view(),name='dept_detail'),
谢谢大家的帮助和评论 这是您的urlconf:
/department/
中的输入错误吗?int:fk/
中的斜杠可能不在
定义范围内?是的,你是对的,我修复了它,现在我得到了不同的错误,我将更新问题get\u absolute\u url
,因为班级部门
有打字错误,应该是返回反向('company:dept\u detail')
谢谢,谢谢你的接球!这是您的urlconf:/department/
中的输入错误吗?int:fk/
中的斜杠可能不在
定义范围内?是的,你是对的,我修复了它,现在我得到了不同的错误,我将更新问题get\u absolute\u url
,因为班级部门
有打字错误,应该是返回反向('company:dept\u detail')
谢谢,谢谢你的接球!
path('<int:pk>/department/<int:fk>/', views.DeptDetailView.as_view(), name='dept_detail'),