Render hidden form fields & fix tests
This commit is contained in:
parent
d446746794
commit
4bec9a9079
2 changed files with 16 additions and 3 deletions
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -12,7 +12,11 @@
|
|||
{% endif %}
|
||||
|
||||
<section class="section form__section">
|
||||
{% for field in form %}
|
||||
{% for field in form.hidden_fields %}
|
||||
{{ field }}
|
||||
{% endfor %}
|
||||
|
||||
{% for field in form.visible_fields %}
|
||||
<fieldset class="fieldset form__fieldset">
|
||||
<label class="label form__label" for="{{ field.name }}">
|
||||
{{ field.label }}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue