2016-10-20 2 views
0

Hallo allerseits ich verwende Aldryn Apphooks Config, um Konfiguration zu meinem Apphook hinzuzufügen.mit Aldryn Apphooks Config

ist mein Modell wie diese

class Entry(models.Model): 
    TYPES_CHOICES = ( 
    ('none', 'not specified'), 
    ('v', 'By Visit'), 
    ('p', 'By Patient'), 
) 
    app_config = AppHookConfigField(FaqConfig) 
    url = models.CharField(blank=True, default='', max_length=250) 
    count = models.CharField(blank=True, default='', max_length=250) 
    start = models.CharField(blank=True, default='', max_length=250) 
    status = models.CharField(choices=TYPES_CHOICES, max_length=10) 

und meine view.py ist wie dies

class IndexView(AppConfigMixin, generic.ListView): 
    model = Entry 
    template_name = 'faq/index.html' 

    def get_queryset(self): 
     qs = super(IndexView, self).get_queryset() 
     return qs.namespace(self.namespace) 

    def get_context_data (self, **kwargs): 
    context = super(IndexView, self).get_context_data(**kwargs) 
    values_to_pass = context['object_list'].values('url', 'count', 'start') 
    context['object_list'] = values_to_pass 
    print context['object_list'] 
    return context 

I get_context_data fügen Sie den Parameter zu erhalten, aber in diesem Fall dies eine leere Liste zurück

Wenn ich print context zurückgebe, erhalte ich diese

{u'paginator': <django.core.paginator.Paginator object at 0x112aeff90>, u'object_list': [], u'page_obj': <Page 1 of 1>, u'entry_list': [], u'is_paginated': False, u'view': <health.views.IndexView object at 0x1124d9f10>} 

Jede Idee, warum u'object_list und entry_list leer ist, wie die Parameter meines Modells url, status und count

Jede Idee zu bekommen, wie dieser

Vielen Dank im Voraus

Antwort

1

get_context_data Methode von ListView zu tun baut Kontext auf, um an HTML-Vorlage zu übergeben. Um dies zu ändern, machen Sie folgendes.

class IndexView(AppConfigMixin, generic.ListView): 
    model = Entry 
    template_name = 'faq/index.html' 

    def get_context_data(self, **kwargs): 
     context = super(MultipleObjectMixin, self).get_context_data(**kwargs) 
     values_to_pass = context['object_list'].values('url', 'count', 'start') 
     context['new_object_list'] = values_to_pass 
     return context 

Dies wird die Liste von dicts, um Ihre HTML-Vorlage passieren wie [{'url': 'some_url', ....}, {...}, ....]

+0

Dank @Adilet Maratov Ich versuche, dass 'context = Super zu tun (IndexView, Selbst-) .get_context_data (** kwargs) values_to_pass = context ['object_list']. values ​​('url', 'count', 'start') context ['objektliste'] = values_to_pass' aber gibt das eine leere liste [] zurück, irgendein Vorschlag? – Stone

+0

Ich bearbeite meine Anfrage – Stone

+0

@Stone versuchen, Kontext ['Objektliste'] 'direkt nach der Super-Funktion zu drucken. Sehen Sie, was es zeigen wird. Wenn es Objekte druckt, die Sie brauchen, überschreiben Sie es nicht, sondern fügen Sie einen neuen Schlüssel zum 'context' hinzu –

Verwandte Themen