Как добавить значение ключа словаря в список - PullRequest
0 голосов
/ 26 марта 2012

У меня есть такая функция:

def eventcateg_detail(request):
    ca = EventTypeCategory.objects.values()
    for i in range(0, len(ca)):
       pk_sub = ca[i]['sub_categ_id']
       if (pk_sub!=None):
          category = EventTypeCategory.objects.get(id = pk_sub)
          category = category.name
    return render(request,"events/categ.html",{
       'obj': ca
        })

Определение вышеприведенной функции:

Сначала я получаю словарь в переменной ca, т.е.я хочу получить значение, определяющее в sub_categ_id для каждого контента.Я получил это в переменной pk_sub.Как вы можете видеть, pk_sub возвращает идентификатор (который является внешним ключом для самого себя).Я хочу получить все эти значения, которые указывают на тот pk_sub.Я также получаю это:

Critical
Information
Amit Pal

Теперь я хочу добавить это category.name в список.Так что я могу легко перейти к моему шаблону.Как мне это сделать?

Я попытался поместить следующий код в следующую строку:

categories = categories.append(category)

, но это не сработало: (

1 Ответ

2 голосов
/ 26 марта 2012

Две вещи:

  1. Вы можете перебирать список напрямую, а не по индексу: for category in ca:.В теле этого цикла категория будет привязана к каждому элементу в
  2. Вы никогда не определяете categories, поэтому вы не можете добавить к нему;в любом случае list.append возвращает None и деструктивно изменяет список, поэтому вам придется пропустить присвоение.

Наконец, в качестве стиля обычно используется x is not Noneчем != при тестировании на None.

Обновление: Примечание. Комментарий @ agf, описывающий правильный способ использования Django ORM для выполнения этой задачи.

...