Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试将数据保存到一组联机表单时出现问题_Python_Django_Materialize - Fatal编程技术网

Python 尝试将数据保存到一组联机表单时出现问题

Python 尝试将数据保存到一组联机表单时出现问题,python,django,materialize,Python,Django,Materialize,我正在开发一个应用程序,它保存管理员分配给开发人员的项目,因为我有一个项目模型和一个任务模型,因为一个项目可以有多个任务,为了在一个项目中保存多个任务,我正在使用一个内联表单集,但我有一个问题,那就是数据没有正确保存 这是我的看法 class ProjectCreateView(LoginRequiredMixin, CreateView): login_url = 'users:login' template_name = 'projects/add_project.html'

我正在开发一个应用程序,它保存管理员分配给开发人员的项目,因为我有一个项目模型和一个任务模型,因为一个项目可以有多个任务,为了在一个项目中保存多个任务,我正在使用一个内联表单集,但我有一个问题,那就是数据没有正确保存

这是我的看法

class ProjectCreateView(LoginRequiredMixin, CreateView):
    login_url = 'users:login'
    template_name = 'projects/add_project.html'
    form_class = ProjectForm
    success_url = reverse_lazy('projects:project')

    def get_context_data(self, **kwargs):
        data = super().get_context_data(**kwargs)
        if self.request.POST:
            data['formset'] = ProjectFormSet(self.request.POST)
        else:
            data['formset'] = ProjectFormSet()

        return data

    def form_valid(self, form):
        context = self.get_context_data()
        formset = context['formset']

        with transaction.atomic():
            self.object = form.save()

            if formset.is_valid():
                formset.instance = self.object
                formset.save()

        return super().form_valid(form)
这是我的内联表单集:

ProjectFormSet = inlineformset_factory(
    Project, Task, form=TaskForm,
    fields=['type_task', 'task'], extra=1, can_delete=True,
)
这是我的模板,使用我正在研究的内联表单集,他们告诉我最简单的方法是使用jquery库来执行此过程:

{% extends "base.html" %}
{% load static %}

{% block content %}
    <div class="container">
        <div class="card">
            <div class="card-content">
                <h2>Agregar Proyecto</h2>
                <div class="col-md-4">
                    <form method="post">
                        {% csrf_token %}
                        <div class="input-field col s12">
                            <select multiple>
                                {% for developer in form.developer %}
                                    <option value="{{ developer }}"></option>
                                {% endfor %}
                            </select>
                            <label>{{ form.developer.label }}</label>
                        </div>
                        <div class="input-field col s6">
                            <i class="material-icons prefix">article</i>
                            {{ form.name }}
                            <label for="icon_name">{{ form.name.label }}</label>
                        </div>
                        <table>
                            {{ formset.management_form }}
                    
                            {% for form in formset %}
                                {% if forloop.first %}
                                    <thead>
                                        <tr>
                                            {% for field in form.visible_fields %}
                                                <th>{{ field.label|capfirst }}</th>
                                            {% endfor %}
                                        </tr>
                                    </thead>
                                {% endif %}
                                <tr class="formset_row">
                                    {% for field in form.visible_fields %}
                                        <td>
                                            {# Include the hidden fields in the form #}
                                            {% if forloop.first %}
                                                {% for hidden in form.hidden_fields %}
                                                    {{ hidden }}
                                                {% endfor %}
                                            {% endif %}
                                            {{ field.errors.as_ul }}
                                            {{ field }}
                                        </td>
                                    {% endfor %}
                                </tr>
                            {% endfor %}
                        </table>
                        <button type="submit" class="btn btn-success">{{ message }}</button>
                        <a href="{{ request.META.HTTP_REFERER }}" class="btn btn-danger">Cancelar</a>
                    </form>
                </div>
                <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
                <script src="{% static 'js/jquery.formset.js' %}"></script>
                <script>
                    $('.formset_row').formset({
                        addText: 'agregar projectos',
                        deleteText: 'eliminar',
                        prefix: 'project_set'
                    });
                </script>
            </div>
        </div>
    </div>
{% endblock %}
{%extends“base.html”%}
{%load static%}
{%block content%}
阿格雷加项目
{%csrf_令牌%}
{form.developer%}中的开发人员为%
{%endfor%}
{{form.developer.label}
文章
{{form.name}
{{form.name.label}
{{formset.management_form}
{formset%中表单的%s}
{%if-forloop.first%}
{%form.visible_fields%}
{{field.label | capfirst}}
{%endfor%}
{%endif%}
{%form.visible_fields%}
{#在#表单中包含隐藏字段}
{%if-forloop.first%}
{%用于隐藏在表单中。隐藏的_字段%}
{{隐藏}}
{%endfor%}
{%endif%}
{{field.errors.as_ul}}
{{field}}
{%endfor%}
{%endfor%}
{{message}}
$('.formset_行').formset({
addText:“agregar projectos”,
deleteText:'eliminar',
前缀:“项目集”
});
{%endblock%}
我用bootstrap开发应用程序,但我将其更改为materialize,从那一刻起,内联表单开始失败,并且我没有正确保存数据的表单