如何在get_context_data中获取值

时间:2016-10-24 21:03:47

标签: django

大家好我的模特有这个属性

class Entry(models.Model):
  TYPES_CHOICES = ( 
    ('none', 'not specified'),
    ('v', 'By Visit'),
    ('p', 'By Patient'),
  )
  app_config = AppHookConfigField(HealthConfig)
  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, default='')

在我看来,我有一个像这样的通用列表视图

class IndexView(AppConfigMixin, generic.ListView):
  model = Entry
  template_name = 'health/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 values_to_pass
    return context

如何获取值urlcountstart以加入一个值并传递html文件

final= url + count + start

现在print values_to_pass会返回一个空列表[]

任何想法!

1 个答案:

答案 0 :(得分:1)

首先,你必须保证context['object_list']有你的对象,所以请检查一下。

如果要连接urlcountstart,可以将values_list函数与flat参数一起使用并加入它们,这样就可以了一个字符串,即:

final = '-'.join(context['object_list'].values_list('url', 'count', 'start', flat=True))

这会产生-分隔的字符串,例如url_val-count_val-start_val