Python Django CBV如何处理两款车型的不同pk值?
Django CBV DetailView难以与创建、更新和删除视图结合: 我有两个模型,第二个模型与第一个模型有一个ForeignKey:我如何在他们的url.py上区分他们的pk值。我在尝试查看第二个模型上pk的详细视图时遇到错误:404。多谢各位 模型: 网址: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'
通常将模型命名为“路径组件”。我将使用一种常用的模式:
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__"