From 470878a591e4e120dc5b38c834ab0c0811d01b62 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 6 Nov 2012 10:47:26 +0000 Subject: [PATCH] Allow slug_url_kwarg to be overidden by subclass. Fixes #373 --- rest_framework/fields.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 45c0cc8e4..d834d9c5b 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -495,7 +495,7 @@ class HyperlinkedRelatedField(RelatedField): """ pk_url_kwarg = 'pk' slug_field = 'slug' - slug_url_kwarg = None # Defaults to same as `slug_field` + slug_url_kwarg = None # Defaults to same as `slug_field` unless overridden default_read_only = False def __init__(self, *args, **kwargs): @@ -503,8 +503,11 @@ class HyperlinkedRelatedField(RelatedField): self.view_name = kwargs.pop('view_name') except: raise ValueError("Hyperlinked field requires 'view_name' kwarg") + self.slug_field = kwargs.pop('slug_field', self.slug_field) - self.slug_url_kwarg = kwargs.pop('slug_url_kwarg', self.slug_field) + default_slug_kwarg = self.slug_url_kwarg or self.slug_field + self.slug_url_kwarg = kwargs.pop('slug_url_kwarg', default_slug_kwarg) + self.format = kwargs.pop('format', None) super(HyperlinkedRelatedField, self).__init__(*args, **kwargs)