Как получить значение внешнего ключа в атрибуте href элемента гиперссылки в качестве url-параметра в шаблоне Django

У меня есть таблица данных, в которой отображается список автомобилей из модели Vehicle с колонкой Driver. Когда пользователь нажимает на значение столбца Driver, я хочу перенаправить его на страницу driver detail url driver-detail/license_number. Я пытался передать license_number в атрибут href элемента гиперссылки, как href="{% url 'driver-detail' vehicle.driver.license_number %}". Это мне не помогает, он всегда пустой. Если я опущу license_number в значении href, то будет передано возвращаемое значение __str__(self) модели Driver, которое является комбинацией license_number и fullname. Если я изменю возвращаемое значение __str__(self) в модели Driver, она будет работать. Но я не хочу менять возвращаемое значение __str__(self). Любая помощь будет очень признательна!

Model.py

class Driver(models.Model):
    license_number = models.CharField(primary_key=True, max_length=50)
    fullname = models.CharField(max_length=25)
    license_issue_date = models.DateField("Issued Date")
    def __str__(self):
        return self.license_number + " " + self.fullname
   

class **Vehicle**(models.Model):
    license_plate = models.CharField(max_length=25, primary_key=True)
    model = models.CharField(max_length=100, verbose_name="Vehicle model")    
    driver = models.ForeignKey(Driver,on_delete=models.SET_NULL,null=True, blank=True)    

template.html

 <a href="{% url 'driver-detail' vehicle.driver.license_number %}" >
    {{vehicle.driver.license_number}}{{vehicle.driver.fullname}}
</a>
                                    

urls.py

urlpatterns = [
    path('driver-detail/<str:pk>/', views.driverDetail, name='driver-detail'),
]

Я предполагаю, что это происходит потому, что имя вашей модели конфликтует с именем поля. Driver с driver . Поэтому попробуйте переименовать Driver, например Vehicle_Driver или что-то в этом роде. Или переименуйте имя поля в vehicle_driver или что-то в этом роде. . Затем попробуйте vehicle.field_name.license_number.

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