Python 我能做些什么来制作';id';=Django中基于类的视图中的id?
视图.pyPython 我能做些什么来制作';id';=Django中基于类的视图中的id?,python,django,python-3.x,django-models,django-views,Python,Django,Python 3.x,Django Models,Django Views,视图.py from django.shortcuts import render from django.views.generic import DetailView from .models import Producto def general_view(request): context = { 'articulos': Producto.objects.all(), } return render(request, 'shop/genera
from django.shortcuts import render
from django.views.generic import DetailView
from .models import Producto
def general_view(request):
context = {
'articulos': Producto.objects.all(),
}
return render(request, 'shop/general_view.html', context)
class DetailedView(DetailView):
model = Producto
template_name = 'shop/specific_view.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['determinado'] = Producto.objects.get(pk=*¿?*)
return context
from django.urls import path
from . import views
from .views import DetailedView
urlpatterns = [
path('', views.general_view, name='general-view'),
path('<int:pk>/', DetailedView.as_view(), name='specific-article'),
]
url.py
from django.shortcuts import render
from django.views.generic import DetailView
from .models import Producto
def general_view(request):
context = {
'articulos': Producto.objects.all(),
}
return render(request, 'shop/general_view.html', context)
class DetailedView(DetailView):
model = Producto
template_name = 'shop/specific_view.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['determinado'] = Producto.objects.get(pk=*¿?*)
return context
from django.urls import path
from . import views
from .views import DetailedView
urlpatterns = [
path('', views.general_view, name='general-view'),
path('<int:pk>/', DetailedView.as_view(), name='specific-article'),
]
从django.url导入路径
从…起导入视图
from.views导入DetailedView
URL模式=[
路径(“”,views.general_view,name='general-view'),
路径(“/”,DetailedView.as_view(),name='specific-article'),
]
如您所见,出现问题是因为我不知道如何在views.py的detailure_视图中调用id或pk,我猜您可能需要编写一个字典,但我不知道在哪里执行,也不知道如何执行。如果我将id设置为1,它会起作用,但很明显,这会在同一篇文章的每个url中显示不同id的内容。您不需要自己这样做。其思想是,DetailView
具有样板代码,可以自动过滤主键。您只需将设置为'determinationado'
:
class DetailedView(DetailView):
model = Producto
template_name = 'shop/specific_view.html'
context_object_name = 'determinado'
# no override of get_context_data
class DetailedView(详细视图):
模型=产品
模板名称='shop/specific\u view.html'
上下文\对象\名称='determinado'
#不覆盖获取上下文数据