I assume that you want to access the DetailView form the ListView??

To do that your List View template (which should be shop_list.html) should 
contain <a href=”{{shop.id}}/”>{{field}} – {{field}}</a>

I don’t see your models.py so don’t know what the fields are, but here is an 
example of my code for a model called Organisation:

 

{% extends 'pbs1/pbs1_base.html' %}

{% block body_block %}

<div class = "jumbotron">

    <h4 id='pers'>Available Organisations - </h4>

    <h5><i>Click for further details</i></h5>

    <p></p>

    <ol>

        {% for org in organisation_list %}

            <h6><li><a href="{{org.id}}/">{{org.org_Name}} - 
{{org.org_HQ_Location}}</a></li></h6>

        {% endfor %}

    </ol>

</div>

<div class="container">

    <p><a class="btn btn-light" href="{% url 'pbs1:home' %}">Back</a></p>

</div>

{% endblock %}

 

So, when the user clicks on an organisation in the list it takes her to the 
DetailView of that organisation, by virtue of the line in the urls.py:

path('<int:pk>/', views.Org_DetailView.as_view(), name='detail'),

 

Caveat – I am still an novice, but this works for me.

 

Bruckner de Villiers

083 625 1086

 

From: <django-users@googlegroups.com> on behalf of sotiris moustogiannis 
<sotom...@outlook.com>
Reply to: <django-users@googlegroups.com>
Date: Monday, 04 November 2019 at 02:09
To: Django users <django-users@googlegroups.com>
Subject: pass parameter from one class view to another

 

I have this listview and the context['datetimelist'] which is a list into def 
get_context_data

 

class ShopListView(ListView):

      model = Shops

      context_object_name= 'shops'

 

      template_name = 'booking/search.html'

 

      def get_context_data(self, **kwargs):

            context = super(ShopListView, self).get_context_data(**kwargs)

            query = self.request.GET.get('q')

            query1 = self.request.GET.get('q1')

            query2 = self.request.GET.get('q2')

            query3 = self.request.GET.get('q3')

            context['datetimelist'] = [query,query1,query2,query3]

            return context

 

 

      def get_queryset(self):

            query = self.request.GET.get('q')

            query1 = self.request.GET.get('q1')

            query2 = self.request.GET.get('q2')

            query3 = self.request.GET.get('q3')

            result_list = Shops.objects.exclude(Q(appointments__time=query) & 
Q(appointments__date = query1))

            result_list2 = Shops.objects.filter(Q(city=query2) & 
Q(typesport=query3))

            context = list(chain(result_list & result_list2))

            return context

 

And i want to pass this list to ShopDetailView class based view 

 

class ShopDetailView(DetailView):

 

      model = Shops

      

      template_name = 'booking/results.html'

 

 

      context_object_name= 'shops'

 

Also, here are my urls that calls these classes

 

    path('search/', 
booking_views.ShopListView.as_view(template_name='booking/search.html'), 
name='search'),

    path('results/<int:pk>/', 
booking_views.ShopDetailView.as_view(template_name='booking/results.html'), 
name='results'),



How can i pass this list from one class based view to the other

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/5c011fa8-daa1-41ad-b4e8-b4bb7e8aa5d2%40googlegroups.com.


-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/B2955F71-3B1D-4235-B224-65C30D97781D%40gmail.com.

Reply via email to