Как получить значение внешнего ключа в атрибуте 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
.