Django预选带有表单的复选框

时间:2019-10-06 09:36:51

标签: javascript django checkbox

我有两个相互依赖的下拉菜单。在第一滴刺中,可以选择年度维护次数。在第二个下拉菜单中,可以选择相应的间隔。

现在,我想使用预选复选框将实际维护月份存储在数据库中。为此,我用一年的整个月创建了一个表,并以可能的间隔建立了太多的关系。

如何根据间隔可能性预先选择复选框?

我希望它是可以理解的,并感谢您的帮助。这是我的代码:

models.py

ss Systems(models.Model):

    systemUUID = models.CharField(max_length=30)
    idNum = models.CharField( max_length=50)
    postalcode = models.CharField(max_length=10, blank=True)
    city = models.CharField(max_length=50, blank=True)
    street = models.CharField(max_length=150, blank=True)
    fitter_mailaddress = models.EmailField(blank=True)
    general_mailaddress = models.EmailField()
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    personnel_maintenance_per_year = models.ForeignKey(Personnel_maintenance_per_year, on_delete=models.SET_NULL, null=True)
    select_the_maintenance_months = models.ForeignKey(Select_the_maintenance_months, on_delete=models.SET_NULL, null=True)
    jan = models.BooleanField()
    feb = models.BooleanField()
    mar = models.BooleanField()
    apr = models.BooleanField()
    may = models.BooleanField()
    jun = models.BooleanField()
    jul = models.BooleanField()
    aug = models.BooleanField()
    sep = models.BooleanField()
    oct = models.BooleanField()
    nov = models.BooleanField()
    dec = models.BooleanField()


def __str__(self):
    return self.systemUUID

def get_absolute_url(self):
    return reverse('systems-detail', kwargs={'pk': self.pk})

form.py

(当前未使用)

class SystemForm(forms.ModelForm):

class Meta:
    model = Systems

    fields = ['systemUUID', 'idNum', 'postalcode', 'city', 'street', 'fitter_mailaddress', 'general_mailaddress']


    jan = forms.BooleanField(required=False, initial=True)
    feb = forms.BooleanField(required=False, initial=True)
    mar = forms.BooleanField(required=False, initial=True)
    apr = forms.BooleanField(required=False, initial=True)
    may = forms.BooleanField(required=False, initial=True)
    jun = forms.BooleanField(required=False, initial=True)
    jul = forms.BooleanField(required=False, initial=True)
    aug = forms.BooleanField(required=False, initial=True)
    sep = forms.BooleanField(required=False, initial=True)
    oct = forms.BooleanField(required=False, initial=True)
    nov = forms.BooleanField(required=False, initial=True)
    dec = forms.BooleanField(required=False, initial=True)

view.py

class SystemCreateView(LoginRequiredMixin, CreateView):
model = Systems
fields = ['systemUUID', 'elevatorNum', 'postalcode', 'city', 'street', 'fitter_mailaddress',
          'general_mailaddress', 'personnel_maintenance_per_year', 'select_the_maintenance_months', 'jan',
          'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']

def form_valid(self, form):
    form.instance.author = self.request.user
    return super().form_valid(form)

def load_cities(request):
personnel_maintenance_per_year_id = request.GET.get('personnel_maintenance_per_year')
    maintenance_months = Select_the_maintenance_months.objects.filter(personnel_maintenance_per_year_id=personnel_maintenance_per_year_id).order_by('name')
    ids = []
    for month in maintenance_months:
        print('Maintenance Month PK ',month.pk)
        mon = Months.objects.filter(maintenance_months__name__contains=month)
        print(mon)
        #m2m = User.select_the_maintenance_months_months.through.objects.filter(select_the_maintenance_months_id=month.pk)
        #print('Relations ',m2m)
    return render(request, 'users/city_dropdown_list_options.html', {'maintenance_monthses': maintenance_months})#, 'month': mon})

dropdown_list.html

<option value="">---------</option>
{% for maintenance_months in maintenance_monthses %}
<option value="{{ maintenance_months.pk }}">{{ maintenance_months.name }}</option>
{% endfor %}

new_system_form.html

{% extends "users/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section">
    <form method="POST" id="systemsForm" data-cities-url="{% url 'ajax_load_cities' %}" novalidate>
        {% csrf_token %}
        <fieldset class="form-group">
            <legend class="border-bottom mb-4">New System</legend>
            {{ form.as_table }}
        </fieldset>
        <legend class="border-bottom mb-4"></legend>
        <div class="form-group">
            <button class="btn btn-outline-info" type="submit">Save</button>
            <a class="btn float-right btn-secondary btn-sm mt-1 mb-1" href="{% url 'list-systems' %}">Back</a>
        </div>

    </form>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
  <script>
  $("#id_personnel_maintenance_per_year").change(function () {
    var url = $("#systemsForm").attr("data-cities-url");
    var personnel_maintenance_per_yearId = $(this).val();

  $.ajax({
    url: url,
    data: {
      'personnel_maintenance_per_year': personnel_maintenance_per_yearId
    },
    success: function (data) {
      $("#id_select_the_maintenance_months").html(data);

    }
  });

});
 </script>
</div>
{% endblock content %}

0 个答案:

没有答案