Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我能做些什么来制作';id';=Django中基于类的视图中的id?_Python_Django_Python 3.x_Django Models_Django Views - Fatal编程技术网

Python 我能做些什么来制作';id';=Django中基于类的视图中的id?

Python 我能做些什么来制作';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

视图.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'),
]
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'
#不覆盖获取上下文数据