Как установить правильный url ? (Django)

У меня есть два класса в модели.

class Ebuy_Fields(models.Model):
    source = models.CharField(max_length=10)
    category = models.CharField(max_length=32)
    rfq_id = models.CharField(max_length=32)
    rfq_title = models.TextField()

class Ebuy_Detail_Fields(models.Model):
    rfq_id_final = models.CharField(max_length=10)
    rfq_id_title_final = models.TextField()

В файле views.py,

def ebuy_detail(request,rfq):
    # unique_bid = get_object_or_404(Ebuy_Detail_Fields,rfq_id_final=rfq_id_final)
    unique_bid = Ebuy_Detail_Fields.objects.filter(rfq_id_final__icontains=rfq)
    context = {'unique_bid':unique_bid}
    return render(request,'rfq-display.html',context)

urls.py

path('ebuy/<rfq>', ebuy_detail, name='ebuy_detail'),

В шаблонах,

<td data-label="RFQ Id"><a href = "{% url 'ebuy_detail'}">{{ i.rfq_id }}</td>

После нажатия на эту ссылку должно открыться детальное представление Ebuy_Detail_Fields.

Открывается представление, но данные не отображаются в соответствии с {{ unique_bid.rfq_id_final }}. Загружаются только теги шаблона, но не данные.

rfq_id и rfq_id_final одинаковы и должны совпадать.

В первую очередь ваш

<td data-label="RFQ Id"><a href = "{% url 'ebuy_detail %'}">{{ i.rfq_id }}</td>

является неправильным. Потому что вам нужно закрыть этот тег.(<a ...>...</a>)

Во-вторых, ваш URL должен выглядеть следующим образом,

path('ebuy/<int:rfq>/', ebuy_detail, name='ebuy_detail'),

И, наконец, в шаблоне ваши url template tag,

<td data-label="RFQ Id">
    <a href = "{% url 'ebuy_detail' rfq=i.rfq_id %}">
        {{ i.rfq_id }}
    </a>
</td>

Вам нужно передать идентификатор объекта в URL в качестве аргумента. И то, как вы использовали одинарные кавычки в {% url ... %}, тоже неправильно.

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