Django - 将模型名称传递给url中的视图

时间:2014-05-15 07:48:44

标签: django url views models

我如何制作它以便将模型名称作为URL中的参数传递给视图?我想重用这个视图,只需传递模型名称,即可显示参数所在模型的列表。

到目前为止我所拥有的是什么

查看

class ModelListView(ListView,objects):

    model = objects
    template_name = "model_list.html"

    def get_context_data(self,**kwargs):
        context = super(ModelListView, self).get_context_data(**kwargs)
        context['listobjects'] = model.objects.all()
        return context

URLS

url(r'^musicpack', MusicPackListView.as_view(), name='musicpack-list', objects = 'MusicPack'),
url(r'^instruments', MusicPackListView.as_view(), name='instrument-list', objects = 'Instrument'),

ANSWERED

嘿谢谢你的回答

我已经使用以下内容,似乎可以正常工作。

查看

class ModelListView(ListView):

    template_name = "model_list.html"

    def get_context_data(self,**kwargs):
        context = super(ModelListView, self).get_context_data(**kwargs)
        return context

URLS

#models
from inventory.views import MusicPack
from inventory.views import Instrument
#views
from inventory.views import ModelListView

    url(r'^musicpacks', ModelListView.as_view(model = MusicPack,), name='musicpack-list'),
    url(r'^instruments', ModelListView.as_view(model = Instrument,), name='instrument-list'),

1 个答案:

答案 0 :(得分:0)

我会将参数从网址传递到这样的视图:

视图:

class ModelListView(ListView):

    model = None
    model_name= ''
    object = None

    template_name = "model_list.html" 

    def get_context_data(self,**kwargs):
        context = super(ModelListView, self).get_context_data(**kwargs)
        context['listobjects'] = model.objects.all()
        return context

URLS:

url(r'^musicpack', ModelListView.as_view( model= MusicPackList,model_name= 'music_pack_list' object = 'MusicPack')),
url(r'^instruments', ModelListView.as_view( model=InstrumentPackList,model_name= 'instrument_pack_list', object= 'InstrumentPack'))