我是Django的新手,我正在try 通过车辆详细信息html页面中为每辆车制作的所有帖子.
我的车辆/模型.py:
*vehicles/models.py*
class Vehicle(models.Model):
TESLA = 'TESLA'
MAZDA = 'MAZDA'
VOLVO = 'VOLVO'
VEHICLE_CHOICES = (
(TESLA, "Tesla"),
(MAZDA, "Mazda"),
(VOLVO, "Volvo"),
)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
model = models.CharField(max_length=9,
choices=VEHICLE_CHOICES,
default=TESLA)
def __str__(self):
return self.model
class Meta:
db_table = "vehicles"
我的帖子是模特.py:
*blog/models.py*
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
vehicle = models.ForeignKey(Vehicle, on_delete=models.CASCADE, default=None )
def get_absolute_url(self):
return reverse('post-detail', kwargs ={'pk': self.pk} )
class Meta:
db_table = "chargehistory"
我已经在 for each 用户传递所有车辆的html文件,现在我想获得 for each 用户车辆制作的所有帖子.
*vehicles/views.py*
class UserVehicleListView(ListView):
model = Vehicle
template_name = 'vehicles/vehicles.html' # <app>/<model>_<viewtype>.html
context_object_name = 'vehicles'
def get_queryset(self):
return Vehicle.objects.filter(owner_id= self.request.user.id)
class UserVehicleDetailView(DetailView):
model = Vehicle
*vehicles/urls.py*
urlpatterns = [
path('vehicles', UserVehicleListView.as_view(), name='vehicle-list'),
path('vehicles/<int:pk>', UserVehicleDetailView.as_view() , name='vehicle-detail'),
]
urlpatterns += staticfiles_urlpatterns()
由于我在路径中传递车辆主键,是否有任何方法可以根据该键过滤帖子,并将其传递给vehicle_detail.html?我是否应该将其作为列表视图传递,路径与UserVehicleDetailView相同?如果有人能帮我,那就太好了,因为我有点困了.谢谢