我有数据表,显示带有驾驶员列的车辆模型中的车辆列表。当用户单击驱动程序列值时,我想将用户重定向到驱动程序详细信息页面网址
driver-detail/license_number
。
我尝试将 license_number 传递给超链接元素(如 href
)的 href="{% url 'driver-detail' vehicle.driver.license_number %}"
属性。这对我没有帮助,它总是空的。如果我省略 license_number
值中的 href
,它将传递驱动程序模型的 __str__(self)
返回值,该值是 license_number
和 fullname
的组合。如果我更改驱动程序模型中 __str__(self)
的返回值,它将起作用。但我不想改变__str__(self)
的返回值。
非常感谢任何帮助!
模型.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)
模板.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
。因此,请尝试将驱动程序重命名为 Vehicle_Driver
或类似的名称。或者将字段名称重命名为 vehicle_driver
或类似的名称。 。那就试试vehicle.field_name.license_number
。