From 96dea12d1fc067aca6d63eaccf7f07c9359af76a Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Sun, 17 Jan 2021 21:08:24 +0100 Subject: [PATCH] Update custom widget Django 3.1 updated ModelChoiceIterator behaviour --- src/newsreader/news/core/forms.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/newsreader/news/core/forms.py b/src/newsreader/news/core/forms.py index a08022a..5dcde94 100644 --- a/src/newsreader/news/core/forms.py +++ b/src/newsreader/news/core/forms.py @@ -12,7 +12,14 @@ class RulesWidget(CheckboxSelectMultiple): def create_option(self, *args, **kwargs): option = super().create_option(*args, **kwargs) - instance = self.choices.queryset.get(pk=option["value"]) + + # see https://docs.djangoproject.com/en/3.1/releases/3.1/#id1 + try: + pk = int(option["value"]) + except TypeError: + pk = option["value"].value + + instance = self.choices.queryset.get(pk=pk) if self.category and instance.category: option["selected"] = self.category.pk == instance.category.pk