Python Django CBV如何处理两款车型的不同pk值?

Python Django CBV如何处理两款车型的不同pk值?,python,django,Python,Django,Django CBV DetailView难以与创建、更新和删除视图结合: 我有两个模型,第二个模型与第一个模型有一个ForeignKey:我如何在他们的url.py上区分他们的pk值。我在尝试查看第二个模型上pk的详细视图时遇到错误:404。多谢各位 模型: 网址: 通常将模型命名为“路径组件”。我将使用一种常用的模式: urlpatterns=[ url(r'^rtana/$,views.rtana\u List\u View.as\u View(),name=“List”), url(r'

Django CBV DetailView难以与创建、更新和删除视图结合: 我有两个模型,第二个模型与第一个模型有一个ForeignKey:我如何在他们的url.py上区分他们的pk值。我在尝试查看第二个模型上pk的详细视图时遇到错误:404。多谢各位

模型: 网址:
通常将模型命名为“路径组件”。我将使用一种常用的模式:

urlpatterns=[
url(r'^rtana/$,views.rtana\u List\u View.as\u View(),name=“List”),
url(r'^rtana/create/$,views.rtana\u create\u View.as\u View(),name=“create”),
url(r'^rtana/(?P\d+/$),views.rtana\u Detail\u View.as\u View(),name=“details”),
url(r'^rtana/(?P\d+)/update/,views.rtana\u update\u View.as\u View(),name=“update”),
url(r'^rtana/(?P\d+)/delete/$,views.rtana\u delete\u View.as\u View(),name=“delete”),
url(r'^rt/$,views.rt\u List\u View.as\u View(),name=“rtlist”),
url(r'^rt/(?P\d+/$),views.rt\u Detail\u View.as\u View(),name=“rtdetails”),
url(r'^rt/create/$,views.rt\u create\u View.as\u View(),name=“rtcreate”),
]

非常感谢您的建议,它现在运行得非常好。再次感谢梅尔文。
class Rtana(models.Model):
    rsc_name = models.CharField(max_length=128,unique=True)
    rsc = models.PositiveIntegerField(unique=True)
    cc = models.CharField(max_length=32,unique=True)
    def __str__(self):
        return '%s %s' % (self.rsc_name , self.rsc)
    def get_absolute_url(self):
        return reverse("app7_cbv:details",kwargs={'pk':self.pk})
class Rt(models.Model):
        rt_name = models.CharField(max_length=128,unique=True)
        rsc_no = models.ForeignKey(Rtana,related_name="route",on_delete=models.CASCADE,)
        rt_no = models.PositiveIntegerField(unique=True)
        def __str__(self):
            return self.rt_name
        def get_absolute_url(self):
            return reverse("app7_cbv:rtdetails",kwargs={'pk':self.pk})
app_name = "app7_cbv"
urlpatterns = [
    url(r'^list$',views.Rtana_List_View.as_view(),name="list"),
    url(r'^(?P<pk>\d+)/$',views.Rtana__Detail_View.as_view(),name="details"),
    url(r'^create/$',views.Rtana_Create_View.as_view(),name="create"),
    url(r'^update/(?P<pk>\d+)/$',views.Rtana_Update_View.as_view(),name="update"),
    url(r'^delete/(?P<pk>\d+)/$',views.Rtana_Delete_View.as_view(),name="delete"),
    url(r'^rtlist$',views.Rt_List_View.as_view(),name="rtlist"),
    url(r'^(?P<pk>\d+)/$',views.Rt_Detail_View.as_view(),name="rtdetails"),
    url(r'^rtcreate/$',views.Rt_Create_View.as_view(),name="rtcreate"),
]
def index(request):
    return render(request,"index.html")
class Rtana_List_View(ListView):
    model = models.Rtana
    context_object_name = "rtana_list"
class Rtana__Detail_View(DetailView):
    model = models.Rtana
    context_object_name = "rtana_detail"
    template_name = "app7_cbv/rtana_detail.html"
class Rt_List_View(ListView):
    model = models.Rt
    context_object_name = "rt_list"
class Rt_Detail_View(DetailView):
    model = models.Rt
    context_object_name = "rt_detail"
    template_name = "app7_cbv/rt_detail.html"
class Rtana_Create_View(CreateView):
    model = models.Rtana
    fields = ('rsc_name','rsc','cc')
class Rtana_Update_View(UpdateView):
    model = models.Rtana
    fields = "__all__"
class Rtana_Delete_View(DeleteView):
    model = models.Rtana
    success_url = reverse_lazy("app7_cbv:list")
class Rt_Create_View(CreateView):
    model = models.Rt
    fields = "__all__"