Как передать элемент и связанный с ним набор форм из представления в шаблон в Django?

Я понимаю, как передать несколько элементов в представлениях в шаблон, вы просто передаете несколько элементов в контексте.

Я пытаюсь научиться создавать приложение с контрольным списком для обучения и иметь набор форм для ссылок, связанных с каждым пунктом для обучения. Таким образом, вы можете сохранить несколько ссылок на youtube-инструкции для каждого пункта.

Но допустим, что я передаю запрос элементов. И для каждого элемента создан свой набор форм. Как мне передать связанный набор форм вместе с элементом?

Используя chatgpt и google, я пришел к следующему

def currentchecklist(request):
    items = Item.objects.filter(user=request.user, datecompleted__isnull=True)
    courses = request.user.checklist_courses.all()
    LinkFormSet = inlineformset_factory(Item, Link, fields=('url',), extra=1)

    formsets = [] 
   
    for item in items:
        formsets.append((item, LinkFormSet(instance=item)))

    return render(request, "BJJApp/currentchecklist.html", {"items": items,"courses": 
    courses, "formsets": formsets})

и затем в шаблоне у меня есть вот это

{% for item, formset in formsets %}
 <div class="formset" id="linkform-{{ item.id }}" style="display: none;">
     <label for="title">Links for {{ item.title }}</label>
     
           {{ formset.as_p }}
                           
     </div>

Этот код пока работает для отображения набора форм, дальше я работаю над сохранением ссылок.

Я просто хотел спросить, является ли это лучшим способом доступа к элементу и связанному с ним набору форм? Используя список кортежей? Или есть лучший способ?

Спасибо!

Вернуться на верх