Repository: carltongibson/django-filter

Issue:
Smooth transition for filter_overrides relocation
Although [migration docs](https://django-filter.readthedocs.io/en/latest/migration.html#move-filterset-options-to-meta-class) specify the change, programmers might not recognize the migration change easily by asking them to override the option (as they believe they already did in accordance to previous versions' documentation).

You might get many complains (similarly to issue #564) if the message is not clear enough.
Thanks to @rpkilby for [pointing that out](https://github.com/carltongibson/django-filter/issues/564#issuecomment-261309965).


Discussion:
Hmm. Not sure. 

There were deprecation warnings for this. Did you not see those? (Genuine question.)

One of the nice things about 1.0 was removing all these kinds of notices. I'm a bit reluctant to put the back in. 

@carltongibson Well, unit tests hides all notices as long as tests pass.
The problem now they are failing, and indicate a misleading error...
Even [your documentation](https://django-filter.readthedocs.io/en/latest/usage.html#overriding-default-filters) have no notice of a change and still pointing to a misleading old code.

Soon you will get more complains! I guarantee that...

Yeah. Still not convinced. There comes a point when removing the deprecation warnings and just letting it break is the cost of progress. It's up to individuals not to ignore the warnings. 

(That documentation link is outdated — PRs on the Docs are **very welcome**)

OK. What needs to happen here: 
- [_Overriding Default Filters_](https://django-filter.readthedocs.io/en/latest/guide/usage.html#overriding-default-filters) is wrong.
- [_Meta Options_](https://django-filter.readthedocs.io/en/latest/ref/filterset.html#meta-options) is missing the `filter_overrides` section.
- The text and link of [this assertion](https://github.com/carltongibson/django-filter/blob/develop/django_filters/filterset.py#L328-L331) needs updating. 


Resolving patch:
diff --git a/django_filters/filterset.py b/django_filters/filterset.py
--- a/django_filters/filterset.py
+++ b/django_filters/filterset.py
@@ -327,8 +327,8 @@ def filter_for_field(cls, f, name, lookup_expr='exact'):
 
         assert filter_class is not None, (
             "%s resolved field '%s' with '%s' lookup to an unrecognized field "
-            "type %s. Try adding an override to 'filter_overrides'. See: "
-            "https://django-filter.readthedocs.io/en/latest/usage.html#overriding-default-filters"
+            "type %s. Try adding an override to 'Meta.filter_overrides'. See: "
+            "https://django-filter.readthedocs.io/en/develop/ref/filterset.html#customise-filter-generation-with-filter-overrides"
         ) % (cls.__name__, name, lookup_expr, f.__class__.__name__)
 
         return filter_class(**default)
diff --git a/django_filters/utils.py b/django_filters/utils.py
--- a/django_filters/utils.py
+++ b/django_filters/utils.py
@@ -22,7 +22,7 @@
 
 def deprecate(msg, level_modifier=0):
     warnings.warn(
-        "%s See: https://django-filter.readthedocs.io/en/latest/migration.html" % msg,
+        "%s See: https://django-filter.readthedocs.io/en/develop/migration.html" % msg,
         DeprecationWarning, stacklevel=3 + level_modifier)
 
 


Test patch: