Как установить правильный 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 ... %}
, тоже неправильно.