Attempt to reverse the result's detail view URL. This only works with views that are generic-like (has `.lookup_field`) and viewset-like (has `.basename` / `.reverse_action()`).
(self, result, view)
| 849 | return context |
| 850 | |
| 851 | def get_result_url(self, result, view): |
| 852 | """ |
| 853 | Attempt to reverse the result's detail view URL. |
| 854 | |
| 855 | This only works with views that are generic-like (has `.lookup_field`) |
| 856 | and viewset-like (has `.basename` / `.reverse_action()`). |
| 857 | """ |
| 858 | if not hasattr(view, 'reverse_action') or \ |
| 859 | not hasattr(view, 'lookup_field'): |
| 860 | return |
| 861 | |
| 862 | lookup_field = view.lookup_field |
| 863 | lookup_url_kwarg = getattr(view, 'lookup_url_kwarg', None) or lookup_field |
| 864 | |
| 865 | try: |
| 866 | kwargs = {lookup_url_kwarg: result[lookup_field]} |
| 867 | return view.reverse_action('detail', kwargs=kwargs) |
| 868 | except (KeyError, NoReverseMatch): |
| 869 | return |
| 870 | |
| 871 | |
| 872 | class MultiPartRenderer(BaseRenderer): |