I'm trying to pass all the Posts made for each vehicle in a vehicle detail html page.
My vehicles/models.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"
My Posts models.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"
I am already passing in a html file all the Vehicles for each User and now i would like to get all the posts made for each User's vehicle.
*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()
Since i'm passing the vehicle primary key in the path, is there any way for me to filter the posts based on that key and pass it to vehicle_detail.html? Should i pass it as a ListView in the same path as UserVehicleDetailView?