diff --git a/src/newsreader/news/core/forms.py b/src/newsreader/news/core/forms.py index 8e8059b..a08022a 100644 --- a/src/newsreader/news/core/forms.py +++ b/src/newsreader/news/core/forms.py @@ -1,6 +1,7 @@ from django import forms from django.forms.widgets import CheckboxSelectMultiple +from newsreader.accounts.models import User from newsreader.news.collection.models import CollectionRule from newsreader.news.core.models import Category @@ -23,6 +24,11 @@ class CategoryForm(forms.ModelForm): required=False, queryset=CollectionRule.objects.none(), widget=RulesWidget ) + user = forms.ModelChoiceField( + queryset=User.objects.none(), + widget=forms.widgets.HiddenInput(attrs={"readonly": True}), + ) + def __init__(self, *args, **kwargs): self.user = kwargs.pop("user") @@ -31,9 +37,12 @@ class CategoryForm(forms.ModelForm): self.fields["rules"].queryset = CollectionRule.objects.filter(user=self.user) self.fields["rules"].widget.category = self.instance + self.fields["user"].queryset = User.objects.filter(pk=self.user.pk) + + self.initial["user"] = self.user + def save(self, commit=True): instance = super().save(commit=False) - instance.user = self.user if commit: instance.save() @@ -46,4 +55,4 @@ class CategoryForm(forms.ModelForm): class Meta: model = Category - fields = ("name", "rules") + fields = ("name", "rules", "user") diff --git a/src/newsreader/templates/form/form.html b/src/newsreader/templates/form/form.html index 31242a9..5907df5 100644 --- a/src/newsreader/templates/form/form.html +++ b/src/newsreader/templates/form/form.html @@ -12,7 +12,11 @@ {% endif %}
- {% for field in form %} + {% for field in form.hidden_fields %} + {{ field }} + {% endfor %} + + {% for field in form.visible_fields %}