Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def show_category_feature_set(request):
- category_id = request.GET.get('category')
- category = Category.objects.get(id=category_id)
- features = category.features.all().values('name', 'id')
- response_data = {}
- try:
- response_data['features'] = list(features)
- except:
- response_data['error'] = "Sorry, couldn't load any features"
- return JsonResponse(response_data)
- class Feature(models.Model):
- name = models.CharField(max_length=100, blank=False)
- class Category(models.Model):
- name = models.CharField(max_length=50, blank=False)
- slug = models.SlugField(unique=True)
- features = models.ManyToManyField(Feature, through='FeatureCategorization' )
- class FeatureCategorization(models.Model):
- category = models.ForeignKey(Category)
- feature = models.ForeignKey(Feature)
- class ListingForm(forms.ModelForm):
- def __init__(self, *args, **kwargs):
- super(ListingForm, self).__init__(*args, **kwargs)
- self.helper = FormHelper()
- self.helper.form_id = 'listing'
- self.helper.form_show_errors = True
- self.helper.form_method = 'post'
- self.helper.form_action = 'submit'
- self.helper.add_input(Submit('submit', 'Submit'))
- class Meta:
- model = Listing
- fields = ['title', 'event_types', 'category', 'features', 'description', 'blog_url', 'website', 'pricing_page']
- widgets = {
- 'event_types': forms.CheckboxSelectMultiple(),
- 'features': forms.CheckboxSelectMultiple()
- }
- <div class="form-group" id="div_id_features">
- <label class="control-label requiredField" for="id_features_0">Features<span class="asteriskField">*</span></label>
- <div class="controls" id="listing">
- <div class="checkbox">
- <label class=""><input id="id_features_1" name="features" type="checkbox" value="10">Online Registration</label>
- </div>
- <div class="checkbox">
- <label class=""><input id="id_features_2" name="features" type="checkbox" value="11">PCI Compliance</label>
- </div>
- </div>
- </div>
- $( "#id_category" ).change(function () {
- var category = $( this ).val();
- $.ajax({
- url: '/ajax/category_features/',
- data: {
- 'category': category
- },
- dataType: 'json',
- success: function ( response_data ) {
- $("#div_id_features").empty().append(response_data.features.map((feature) => {
- return $('<input >', {
- type : 'checkbox',
- id: 'id_features_' + feature.id,
- name: 'features',
- value: feature.id,
- }).wrap("<label > </label>").text(feature.name);
- }));
- }
- });
- });
- <div id="div_id_features" class="form-group">
- <input type="checkbox" id="id_features_10" name="features" value="10">
- <input type="checkbox" id="id_features_11" name="features" value="11">
- </div>
- $('#features').empty().append(features[$(this).val()].map(feature => $('<div class="checkbox"><label>' +
- '<input type="checkbox" name="features[]" value="' + feature.id + '"/>' + feature.name +
- '</label>')
- ));
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement