Make sure attribute chains are evaluated safely
Django CI/CD / test (push) Successful in 1m1s Details
Django CI/CD / build-and-push (push) Successful in 1m56s Details

This commit is contained in:
Lukáš Kucharczyk 2024-05-30 11:15:52 +02:00
parent 28db8ae427
commit 1016503567
Signed by: lukas
SSH Key Fingerprint: SHA256:vMuSwvwAvcT6htVAioMP7rzzwMQNi3roESyhv+nAxeg
1 changed files with 3 additions and 2 deletions

View File

@ -1,5 +1,6 @@
from django import forms from django import forms
from django.urls import reverse from django.urls import reverse
from common.utils import safe_getattr
from games.models import Device, Edition, Game, Platform, Purchase, Session from games.models import Device, Edition, Game, Platform, Purchase, Session
@ -45,8 +46,8 @@ class EditionChoiceField(forms.ModelChoiceField):
class IncludePlatformSelect(forms.Select): class IncludePlatformSelect(forms.Select):
def create_option(self, name, value, *args, **kwargs): def create_option(self, name, value, *args, **kwargs):
option = super().create_option(name, value, *args, **kwargs) option = super().create_option(name, value, *args, **kwargs)
if value: if platform_id := safe_getattr(value, 'instance.platform.id'):
option["attrs"]["data-platform"] = value.instance.platform.id option["attrs"]["data-platform"] = platform_id
return option return option