Upgrade Django from 5.2 to 6.0 (#20).
CI / test (pull_request) Successful in 4s
Unit Tests / test (pull_request) Successful in 3s

Align Model.save with keyword-only Django 6 API, fix recaptcha score widget usage, and make Payments.date use a callable default.
This commit is contained in:
2026-07-14 07:13:24 -05:00
parent c9ff71bce5
commit 0365d4a2cb
5 changed files with 28 additions and 13 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ description = "Django site for SCHA Wheaton"
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
dependencies = [ dependencies = [
"django>=5.2,<6", "django>=6.0,<7",
"django-phonenumber-field>=8.1.0", "django-phonenumber-field>=8.1.0",
"django-recaptcha>=4.1.0", "django-recaptcha>=4.1.0",
"gunicorn>=23.0.0", "gunicorn>=23.0.0",
+1 -5
View File
@@ -19,11 +19,7 @@ class CaptchaForm(forms.Form):
captcha = ReCaptchaField( captcha = ReCaptchaField(
public_key=settings.RECAPTCHA_PUBLIC_KEY, public_key=settings.RECAPTCHA_PUBLIC_KEY,
private_key=settings.RECAPTCHA_PRIVATE_KEY, private_key=settings.RECAPTCHA_PRIVATE_KEY,
widget=ReCaptchaV3( widget=ReCaptchaV3(required_score=0.85),
attrs={
'required_score':0.85,
}
),
) )
@@ -0,0 +1,19 @@
# Generated by Django 6.0.7 on 2026-07-14 12:13
import django.utils.timezone
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('schasite', '0011_alter_payments_date_communitymember_and_more'),
]
operations = [
migrations.AlterField(
model_name='payments',
name='date',
field=models.DateField(default=django.utils.timezone.now),
),
]
+3 -3
View File
@@ -12,13 +12,13 @@ class TimeInfoBase(models.Model):
class Meta: class Meta:
abstract = True abstract = True
def save(self, *args, **kwargs): def save(self, **kwargs):
if not kwargs.pop("skip_last_modified", False) and not hasattr(self, "skip_last_modified"): if not kwargs.pop("skip_last_modified", False) and not hasattr(self, "skip_last_modified"):
self.last_modified = timezone.now() self.last_modified = timezone.now()
if kwargs.get("update_fields") is not None: if kwargs.get("update_fields") is not None:
kwargs["update_fields"] = list({*kwargs["update_fields"], "last_modified"}) kwargs["update_fields"] = list({*kwargs["update_fields"], "last_modified"})
super().save(*args, **kwargs) super().save(**kwargs)
# Create your models here. # Create your models here.
class UsefulLinks(TimeInfoBase): class UsefulLinks(TimeInfoBase):
@@ -148,7 +148,7 @@ class MembershipServices(TimeInfoBase):
class Payments(TimeInfoBase): class Payments(TimeInfoBase):
date = models.DateField(default=timezone.now()) date = models.DateField(default=timezone.now)
status = models.CharField(default="Completed", max_length=256) status = models.CharField(default="Completed", max_length=256)
email = models.EmailField(blank=True, null=True) email = models.EmailField(blank=True, null=True)
person = models.ForeignKey( person = models.ForeignKey(
Generated
+4 -4
View File
@@ -101,16 +101,16 @@ wheels = [
[[package]] [[package]]
name = "django" name = "django"
version = "5.2.16" version = "6.0.7"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
dependencies = [ dependencies = [
{ name = "asgiref" }, { name = "asgiref" },
{ name = "sqlparse" }, { name = "sqlparse" },
{ name = "tzdata", marker = "sys_platform == 'win32'" }, { name = "tzdata", marker = "sys_platform == 'win32'" },
] ]
sdist = { url = "https://files.pythonhosted.org/packages/a9/26/889449d521ae508b26de715954faecd8bcf3f740affb81b2d146a83b42a5/django-5.2.16.tar.gz", hash = "sha256:59ea02020c3136fce14bef0bbece21a10a4febef5eed1c51c22ae468efa22200", size = 10890894, upload-time = "2026-07-07T13:52:17.005Z" } sdist = { url = "https://files.pythonhosted.org/packages/89/55/664f24ff81c9ea19cb7dfc851afeae1f3c2390c7aee01d4ded68b5c1580d/django-6.0.7.tar.gz", hash = "sha256:2998503fc083124fb58037084bfa00de323c7c743f05f1b4284e77bff0ab8890", size = 10921299, upload-time = "2026-07-07T13:51:26.485Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/4e/13/1e5e3e4c15dcecb04281b3cb2a46a4670e1cef131068e202f6040df19224/django-5.2.16-py3-none-any.whl", hash = "sha256:04f354bf9d807a86ad1a8392fe3808d362358a8eafc322848e0e43e59b24371d", size = 8311943, upload-time = "2026-07-07T13:52:11.223Z" }, { url = "https://files.pythonhosted.org/packages/ba/ec/1ce5334b6a2c52ce619c23a0be8d366a57a0e080ebb2d88266e5c849157c/django-6.0.7-py3-none-any.whl", hash = "sha256:a037427c2288443a8c02a1b02295a31c239663aa682bc50b1976afb7cf6a769e", size = 8373344, upload-time = "2026-07-07T13:51:20.007Z" },
] ]
[[package]] [[package]]
@@ -366,7 +366,7 @@ dev = [
[package.metadata] [package.metadata]
requires-dist = [ requires-dist = [
{ name = "django", specifier = ">=5.2,<6" }, { name = "django", specifier = ">=6.0,<7" },
{ name = "django-phonenumber-field", specifier = ">=8.1.0" }, { name = "django-phonenumber-field", specifier = ">=8.1.0" },
{ name = "django-recaptcha", specifier = ">=4.1.0" }, { name = "django-recaptcha", specifier = ">=4.1.0" },
{ name = "gunicorn", specifier = ">=23.0.0" }, { name = "gunicorn", specifier = ">=23.0.0" },