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 import forms
|
||||||
from django.forms.widgets import CheckboxSelectMultiple
|
from django.forms.widgets import CheckboxSelectMultiple
|
||||||
|
|
||||||
|
from newsreader.accounts.models import User
|
||||||
from newsreader.news.collection.models import CollectionRule
|
from newsreader.news.collection.models import CollectionRule
|
||||||
from newsreader.news.core.models import Category
|
from newsreader.news.core.models import Category
|
||||||
|
|
||||||
|
|
@ -23,6 +24,11 @@ class CategoryForm(forms.ModelForm):
|
||||||
required=False, queryset=CollectionRule.objects.none(), widget=RulesWidget
|
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):
|
def __init__(self, *args, **kwargs):
|
||||||
self.user = kwargs.pop("user")
|
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"].queryset = CollectionRule.objects.filter(user=self.user)
|
||||||
self.fields["rules"].widget.category = self.instance
|
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):
|
def save(self, commit=True):
|
||||||
instance = super().save(commit=False)
|
instance = super().save(commit=False)
|
||||||
instance.user = self.user
|
|
||||||
|
|
||||||
if commit:
|
if commit:
|
||||||
instance.save()
|
instance.save()
|
||||||
|
|
@ -46,4 +55,4 @@ class CategoryForm(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Category
|
model = Category
|
||||||
fields = ("name", "rules")
|
fields = ("name", "rules", "user")
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,11 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<section class="section form__section">
|
<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">
|
<fieldset class="fieldset form__fieldset">
|
||||||
<label class="label form__label" for="{{ field.name }}">
|
<label class="label form__label" for="{{ field.name }}">
|
||||||
{{ field.label }}
|
{{ field.label }}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue