Обратный для ‘..’ с аргументами ‘(«,)’ не найден. 1 шаблон(ы) попробовал: [‘обычный/гайка/(?P[0-9] )/$’]

#django #django-models #django-templates #django-urls #django-errors

Вопрос:

Хей!

Я получаю сообщение об ошибке «Обратный для» nuts_detail «с аргументами» ( «,) » не найден. 1 шаблон(ы) попробовал: [‘обычный/гайка/(?P[0-9] )/$’]’

когда я свяжу свои detail_nuts.html вот так, но я могу перейти на страницу через URL-строку, так что представление, похоже, работает правильно.

И я могу получить значение plant.nuts_level_3, когда его нет в ссылке.

 <!-- detail_plant.html -->

<p><b>Address: </b>
    <b>NUTS (level 3): </b>
        <a href="{% url 'common:nuts_detail' nuts.id %}">
                {{plant.nuts_level_3}}
    </a>
</p>
 
 # common/urls.py
from django.urls import path
import common.views

app_name = "common"
urlpatterns = [
    path("nut/<int:pk>/", common.views.NutsDetail.as_view(), name="nuts_detail")
]
 
 # plants/models.py
class Plant(models.Model):
    nuts_level_3 = models.ForeignKey(
        NutsLevel3,
        on_delete=models.PROTECT,
        blank=True,
        null=True,
        related_name="nuts_level_3"
    )
 
 # common/models.py
class NutsLevel3(models.Model):
    code = models.CharField(max_length=5, unique=True)
    nuts_level_2 = models.ForeignKey(NutsLevel2, on_delete=models.CASCADE)
    name_native = models.CharField(max_length=100, blank=True)

    def __str__(self):
        return f"{self.name_native}"
 

Я попытался вставить ссылку в

 {% for nuts in plant.nuts_level_3.all %}
    <a href="{% url 'common:nuts_detail' nuts.id %}">
        {{nuts.name_native}}
    </a>
{% endfor %}
 

Затем сообщение об ошибке исчезает, и шаблон отображается, но Nuts вообще не задается, он просто остается пустым полем.

У кого-нибудь есть идея? Любая помощь будет признательна! 🙂