CRM-Modelformset

CRM-Modelformset

  • 效果圖

利用modelformset實現上面的效果:html

views.py文件:python

from user.formself.myform import RegForm, CustomerFrom, ConsultRecordFrom, EnrollMentFrom,CourseReFrom,StudyRecordFrom
from django.forms.models import modelformset_factory

class StudyRe(View):
    """
    學習記錄
    """
    def get(self,request):
        coursere_id = request.GET.get('coursere_id')    # 獲取課程記錄的pk
        study_record = models.StudyRecord.objects.filter(course_record_id=coursere_id)       # 根據課程記錄的ID進行篩選
        formset = modelformset_factory(model=models.StudyRecord,form=StudyRecordFrom,extra=0)   # modelform加工廠,加工數據
        formset = formset(queryset=study_record)        # 把篩選後的結果放入到modelformset_factory進行加工

        return render(request,'studyrecord/studtrecord.html',{'formset':formset})

    def post(self, request):
        formret = modelformset_factory(model=models.StudyRecord,form=StudyRecordFrom,extra=0)
        form_set = formret(request.POST)
        if form_set.is_valid():
            form_set.save()
        return redirect(reverse('user:studyrecord'))

yform.py文件:django

class StudyRecordFrom(forms.ModelForm):
    """
    學習記錄
    """

    class Meta:
        model = models.StudyRecord
        fields = '__all__'

html文件:oop

{% extends 'customer_page/starter.html' %}

{% block header %}
    <h1>學習記錄</h1>
{% endblock %}

{% block content %}
    <div>
        <a href="" class="add btn btn-success pull-left">添加</a>
        <div class="row">
            <div class="col-lg-4 pull-right">
                <form action="" method="get">
                    <div class="col-lg-3" style="left: 32px;">
                        <select id="search_field" class="form-control" name="search_field">
                            <option value="name">學員</option>
                        </select>
                    </div>
                    <div class="col-lg-9">
                        <div class="input-group">
                            <input name="kw" id="kw" type="text" class="form-control" placeholder="Search for...">
                            <span class="input-group-btn">
                        <button class="btn btn-default search-btn" type="submit">Go!</button>
                    </span>
                        </div>
                    </div>
                </form>
            </div>
        </div>
        <form action="" method="post">
            {% csrf_token %}
            {{ formset.management_form }}   <!--modelformset_factory的處理標誌-->
            <table class="table table-bordered table-striped">
                <thead>
                <tr>
                    <th>序號</th>
                    <th>考勤</th>
                    <th>本節成績</th>
                    <th>做業批語</th>
                    <th>某節課程</th>
                    <th>學員</th>
                </tr>
                </thead>
                <tbody>
                {% for field in formset %}
                    <tr>
                        {{ field.id }}      <!--設置ID來區分每條記錄,默認隱藏-->
                        <td>{{ forloop.counter }}</td>
                        <td>{{ field.attendance }}</td>
                        <td>{{ field.score }}</td>
                        <td>{{ field.homework_note }}</td>
                        <td>{{ field.instance.course_record}}</td>  <!--禁止選擇更改-->
                        <td class="hidden">{{ field.course_record}}</td>
                        <td>{{ field.instance.student }}</td>
                        <td class="hidden">{{ field.student }}</td>
                    </tr>
                {% endfor %}

                </tbody>
            </table>
        <button type="submit" class="btn btn-success">保存</button>
        </form>
        <nav aria-label="Page navigation">
            <ul class="pagination">
                {{ page_html|safe }}
            </ul>
        </nav>
    </div>


{% endblock %}

{% block script %}
    <script>
        $('#search_field').val('{{ search_field|default:"name" }}');
        $('#kw').val('{{ kw|default:"" }}');
    </script>
{% endblock %}
本站公眾號
   歡迎關注本站公眾號,獲取更多信息