有没有一种方法可以编写如下所示的url:unitedstates.com/state/city带有基于类的django视图吗? 状态视图有一个slu and,并有一个状态模型。 城市将是相同的。虽然我可以生成unitedstates.com/state或unitedstates.com/city,我不知道如何获得unitedstates.com/state/city。基于类视图的干净,基于名称的网址
该文档对我没有帮助。我只是想出于好奇而知道。任何帮助或解释提供将不胜感激。
谢谢。
有没有一种方法可以编写如下所示的url:unitedstates.com/state/city带有基于类的django视图吗? 状态视图有一个slu and,并有一个状态模型。 城市将是相同的。虽然我可以生成unitedstates.com/state或unitedstates.com/city,我不知道如何获得unitedstates.com/state/city。基于类视图的干净,基于名称的网址
该文档对我没有帮助。我只是想出于好奇而知道。任何帮助或解释提供将不胜感激。
谢谢。
是的,这可以做到。我在这里给你一个例子。
定义你的模型:
class State(models.Model):
slug = models.SlugField()
class City(models.Model):
slug = models.SlugField()
state = models.ForeignKey(State)
定义你的观点:
from django.views.generic import DetailView
from .models import City
class CityDetailView(DetailView):
def get_object(self):
city = City.objects.get(
slug=self.kwargs.get('city'),
state__slug=self.kwargs.get('state')
)
return city
最后,添加到您的urls.py:
from django.conf.urls import url
from .views import CityDetailView
urlpatterns = [
url(r'^(?P<state>\w+)/(?P<city>\w+)/$', CityDetailView.as_view()),
]
谢谢。我测试了它。有用。 – user2901792
你有什么迄今所做? – v1k45
是的,当然这是可能的。你究竟在哪里遇到麻烦? –