From 2386b305961c1ce29070fd653d51d91d54d77c48 Mon Sep 17 00:00:00 2001 From: Alastair Weakley Date: Thu, 24 Oct 2024 11:12:29 +1100 Subject: [PATCH] URLs with GET parameters can be very long --- testproject/home/tests.py | 8 +++++--- .../migrations/0003_alter_keyringitem_url.py | 17 +++++++++++++++++ wagtailcache/models.py | 2 +- 3 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 wagtailcache/migrations/0003_alter_keyringitem_url.py diff --git a/testproject/home/tests.py b/testproject/home/tests.py index d594aad..b608e8e 100644 --- a/testproject/home/tests.py +++ b/testproject/home/tests.py @@ -295,9 +295,11 @@ def test_querystrings(self): # A get with both should also hit, since it is the second request. self.head_hit(page.get_url() + "?valid=0&utm_code=0") self.get_hit(page.get_url() + "?valid=0&utm_code=0") - # A get with a very long querysting should return an error - self.head_error(page.get_url() + "?" + "a" * 2000) - self.get_error(page.get_url() + "?" + "a" * 2000) + # A get with a very long querysting should be cached. + self.head_miss(page.get_url() + "?" + "a" * 2000) + self.get_miss(page.get_url() + "?" + "a" * 2000) + self.head_hit(page.get_url() + "?" + "a" * 2000) + self.get_hit(page.get_url() + "?" + "a" * 2000) @override_settings(WAGTAIL_CACHE_IGNORE_COOKIES=False) def test_cookie_page(self): diff --git a/wagtailcache/migrations/0003_alter_keyringitem_url.py b/wagtailcache/migrations/0003_alter_keyringitem_url.py new file mode 100644 index 0000000..2432e4f --- /dev/null +++ b/wagtailcache/migrations/0003_alter_keyringitem_url.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.15 on 2024-10-24 00:06 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("wagtailcache", "0002_increase_url_length"), + ] + + operations = [ + migrations.AlterField( + model_name="keyringitem", + name="url", + field=models.TextField(), + ), + ] diff --git a/wagtailcache/models.py b/wagtailcache/models.py index c33a138..1ca689d 100644 --- a/wagtailcache/models.py +++ b/wagtailcache/models.py @@ -90,7 +90,7 @@ class KeyringItem(models.Model): expiry = models.DateTimeField() key = models.CharField(max_length=512) - url = models.URLField(max_length=1000) + url = models.TextField() objects = KeyringItemManager()