Элементы не отображаются в django-шаблоне

Я просто пытаюсь вывести запрос, но он не отображается в шаблоне для одного представления и отображается в другом, я не уверен, почему.

шаблон :

<div class="dropdown">
        <button onclick="myFunction()" class="dropbtn">{{vessel_id.name}}</button>
        <div id="myDropdown" class="dropdown-content">
            {%for vessel in vessel%}
            <a href="{% url 'maintenance:home' pk=vessel.id %}">{{vessel.name}}</a>
            {%endfor%}
        </div>
    </div>

в этом представлении {{vessel.name}} не работает и не отображает ни одного выпадающего судна view.py

def update_component(request, pk):
    vessel_id = Vessel.objects.get(id=pk)
    # get the id of this specfic component
    component_id = Component.objects.get(id=pk)
    # get the vessel of this specfic component
    component_vessel = component_id.vessel
    # fetch all components of this specfic vessel
    component = component_vessel.components.all()

    vessel = Vessel.objects.all()
    form = ComponentModelForm(instance=component_id)
    if request.method == 'POST' and 'form-update' in request.POST:
        form = ComponentModelForm(
            request.POST, request.FILES, instance=component_id)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(request.path_info)
    if request.method == 'POST' and 'form-delete' in request.POST:
        component_id.delete()
        return redirect('/maintenance')
    context = {
        'components': component,
        'form': form,
        'component_id': component_id,
        'vessel': vessel,
        "component_vessel":component_vessel,
        'vessel_id':vessel_id
    }
    return render(request, 'update_component.html', context)

в то время как этот вид прекрасно работает для того же шаблона view.py:

def index(request, pk):
    vessel_id = Vessel.objects.get(id=pk)
    vessel = Vessel.objects.all()
    component = vessel_id.components.all()
    component_id = Component.objects.get(id=1)
    form = ComponentModelForm(instance=component_id)
    if request.method == 'POST':
        form = ComponentModelForm(
            request.POST, request.FILES, instance=component_id)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(request.path_info)
    context = {
        'components': component,
        'form': form,
        'vessel': vessel,
        "vessel_id": vessel_id
    }
    return render(request, 'maintenance/index.html', context)

Сделайте ваше object имя другим в вашем html и попробуйте снова.

<div class="dropdown">
    <button onclick="myFunction()" class="dropbtn">{{vessel_id.name}}</button>
    <div id="myDropdown" class="dropdown-content">
        {% for vessel_obj in vessel %}
        <a href="{% url 'maintenance:home' pk=vessel_obj.id %}">{{vessel_obj.name}}</a>
        {% endfor %}
    </div>
</div>
Вернуться на верх