-
-
Notifications
You must be signed in to change notification settings - Fork 6.9k
raise ImproperlyConfigured exception if basename
is not unique
#8438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
@sevdog can you review this please? |
7081209
to
badd1c1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we add additional tests using DefaultRouter() ?
Added additional tests using DefaultRouter |
I think this should be accepted as this change add checks which is good for developer experience. And not introduce any API surface or major behavioral changes |
DRF verson 3.15 raises a ImproperlyConfigured exception if url basenames are not uniques. encode/django-rest-framework#8438
DRF verson 3.15 raises a ImproperlyConfigured exception if url basenames are not uniques. encode/django-rest-framework#8438
Since DRF 3.15.0 a unique basename must be used due encode/django-rest-framework#8438 Fixes chibisov#341
* tests: Use basename='xxx' to set a unique basename Since DRF 3.15.0 a unique basename must be used due encode/django-rest-framework#8438 Fixes #341 * Update tests_app/tests/functional/mixins/detail_serializer_mixin/urls.py --------- Co-authored-by: Asif Saif Uddin <[email protected]>
…mysqlclient. This resulted in the following changes having to be made # Django 3.2 -> 4.2 changes ## ./datamad2/models/users.py from django.utils.translation import ugettext_lazy as _ --> from django.utils.translation import gettext_lazy as _ ## ./datamad2/admin.py admin.site.register(User, UserAdmin) etc at eof changed to @admin.register(User) decorator above class definition of the user type. eof registers all deleted Slightly concerned this does not give the same functionality, TODO check ## ./datamad2/utils.py from django.utils.encoding import force_text --> from django.utils.encoding import force_str ## ./datamadsite/settings.py USE_L10N = True --> line deleted crispy_bootstrap4 added to INSTALLED_APPS # ./datamadsite/settings_local.py.tmpl Added the Additional allowed template packs: CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap4" CRISPY_TEMPLATE_PACK = "bootstrap4" # bootstrap_datepicker_plus updates ## grants.py and data_products.py from bootstrap_datepicker_plus import DatePickerInput --> from bootstrap_datepicker_plus.widgets import DatePickerInput ## Changed format='' for bootstrap_datepicker_plus.widgets.DatePickerInput from format='%d/%m/%Y' to options={'format':'%d/%m/%Y'} to fix the following error: ./app_datamad_new/Lib/site-packages/bootstrap_datepicker_plus/_base.py:38: FutureWarning: The 'format' parameter is ignored, set 'format' in options instead. see https://github.com/monim67/django-bootstrap-datepicker-plusbootstrap_datepicker_plus.widgets Removed ifequal from pagination.html as it was removed in Django 4.0 and replaced with "if x = condition" instead # djangorestframework updating to 3.15.2 from 3.12.4 # Updating to drf 3.15.2 from 3.12.4, had to specify basename for datacentres/ datacenter in datamad2_api/urls.py due to importing name from "DataCentre" model queryset leading to identical routings for the "datacentre" and "datacenter" base URLs. This is due to a change from drf 3.14 -> 3.15 enforcing the following encode/django-rest-framework#8438 Added new script DataMad_csv_create.py to import data from UKRIs DataBank database into a .csv file Created two example Docker files for local debugging, if the user wanted to. setup.py to Python 3.12 from Python 3.6 Updated the README.md file.
When
basename
is dynamically generated inBaseRouter.get_default_basename
, it could (and does) generate a conflicting basename when multiple routes use the same Model. Additionally, developers could inadvertently use a basename that has already been used elsewhere.In either case, this can lead to unexpected results when (correctly) using
reverse()
to get the URL