checkbox - Django - pre-select checkboxes if value occurs in entry -


i have webapp tenants can select number of facets list of checkboxes. there exists many many relationship between facets , tenants. (companies have 'linked_facets' , facets have 'linked_companies' attribute)

the facets nested, used mptt package + custom html page create following nested list of checkboxes

<form action="." method="post" class="facetform">{% csrf_token %}     <ul id="id_linked_facets">     {% recursetree facetten %}         <li>             <label><input type="checkbox" name= 'facet_link' value={{ node.pk }}><h3>{{ node.name }}</h3></label>             {% if not node.is_leaf_node %}                 <ul class="children">                     {{ children }}                 </ul>             {% endif %}         </li>     {% endrecursetree %}     </ul>     <div class="text-right">         <a href="{% url 'feature_list'%}" class="btn btn-default">{% block cancel-button-text %}{% trans "cancel" %}{% endblock %}</a>         <input type="submit" class="btn btn-primary" value="{% trans 'save' %}" />     </div> </form> 

this page accompanied following form:

class facetform(forms.modelform):      widgets = {     'linked_facets': checkboxselectmultiple() }      class meta:         model = tenant         fields = ['linked_facets'] 

the form works , database updated. however, everytime page opened of checkboxes unchecked. since number of facets expand, rather inconvenient (as user whish update 1 facet end having re-check of checkboxes). such pre populate checkboxes relevant information (meaning checkboxes facets have relationship tenant checked)

i used following view, think fetched of relevant information in view. not know how move information in form. used model forms, of done automatically. however, since custom html form have ourselves. of point in right direction on how this?

kind regards,

class facetupdate(tenantrootedmixin, updateview): """update tenant[linked facets]"""     model = tenant     #fields = ['linked_facets']     template_name = 'tenants/facet_list_edit.html'     context_object_name = 'facetten'     form_class = facetform       def get_form_kwargs(self):         kwargs = super(tenantrootedmixin, self).get_form_kwargs()         kwargs['tenant'] = self.request.tenant         kwargs['linked_facets'] = self.request.tenant.linked_facets         return kwargs       def get_success_url(self, **kwargs):         return reverse('facet_list', args=[self.request.tenant.slug])       def get(self, request, *args, **kwargs):         d = super(facetupdate, self).post(request, *args, **kwargs)         self.object = self.get_object()         return super(facetupdate, self).get(request, *args, **kwargs)       def post(self, request, *args, **kwargs):         d = super(facetupdate, self).post(request, *args, **kwargs)         self.object = self.get_object()         #create list of selected checkbox_ids         hitlist = request.post.getlist('facet_link')         #get current tenant         currenttenant = tenant.objects.get(name=self.request.tenant)          #get facets have been selected in form         selected_facets = facetss.objects.filter(id__in=hitlist)          currenttenant.linked_facets = selected_facets         currenttenant.save()         return d       def form_valid(self, form):         self.object = form.save()         d = super(facetupdate, self).form_valid(form)         django.contrib import messages         messages.success(self.request, 'facetten aangepast')         return d      def get_context_data(self, **kwargs):         d = super(facetupdate, self).get_context_data(**kwargs)         d['facetten'] = facetss.objects.all()         return d 


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -