Django Generic Createview: добавьте еще один объект в шаблон

Я пытаюсь добавить дополнительные данные в свой шаблон с именем «equipment_form», связанный с моим представлением CreateEquipment (CreateView generic django)

Итак, у моей модели Equipment есть подкатегория. И у моей подкатегории модели есть категория.

По причинам UX я хочу, чтобы мой пользователь сначала выбрал категорию оборудования, а затем подкатегорию. Для этого мне нужно получить в представлении все содержимое таблицы категорий и передать его шаблону. И у меня есть некоторые проблемы, чтобы понять, как я могу это сделать.

Буду очень признателен за помощь сообщества! Спасибо.

Итак, мой взгляд выглядит так:

class EquipmentCreate(CreateView):
   #category list not passed to the template
   category_list = Category.objects.all()
   model = Equipment
   success_url = reverse_lazy('stock:equipment-list')

РЕДАКТИРОВАТЬ: я нашел ответ здесь:

Django — CreateView — Как объявить переменную и использовать ее в шаблонах

В любом случае, спасибо :)


person Jerkso    schedule 16.12.2014    source источник
comment
Рад, что вы нашли ответ — вы можете вставить небольшой фрагмент своего решения в качестве ответа, чтобы вопрос перестал появляться в списках «неотвеченных». :)   -  person trpt4him    schedule 17.12.2014
comment
Я нашел свой ответ здесь: заголовок stackoverflow.com/questions/9552337/ Наконец-то это не так сложно :)   -  person Jerkso    schedule 19.12.2014


Ответы (1)


Нашел* ответ здесь:

Переопределите get_context_data и установите context_data['place_slug'] = your_slug

Что-то вроде этого:

def get_context_data(self, **kwargs):
    context = super(PictureCreateView, self).get_context_data(**kwargs)
    context['place_slug'] = self.place.slug
    return context

Дополнительную информацию об этом можно найти в Django docs. .

* Публикация комментария OP и редактирование как ответ

person Community    schedule 16.06.2015