Django class based generic views like DetailView, DeleteView and UpdateView should be flexible enough to work with any unique field not just slug and primary key field,
In real projects primary key and slugs are not used fetch data, a more abstract unique key is preferred.
Yes, this can be easily done on our own but django can just ease that extra stress by making these generic classes flexible enough to work with any field of our choice in
the model given that the field is flagged as a unique field.
so we could just use the DatailView as so:
ProductDetail(DetailView):
model = Product
field = order_id
instead of having to write a custom query(with the ORM) to fetch with 'order_id'