Можно ли, ипользуя Django, создать сразу несколько записей в БД не перезагружаю страницу?

изучаю python/django, и столкнулся с одной проблемой. Выбираю объект на странице для которого буду создавать различные характеристики (поля модели заполнять). Если сделать по простому, нажать "создать"=>"заполнить и отправить форму", то это будет только одна созданная запись в БД, а возможно ли сразу создать например 50 записей на одной странице? Или как это обыграть по другому можно? Использую sqlite. А еще доп. вопрос, возможно ли открыть список данных, подгруженный из БД в виде таблице и редактировать любую запись в таблице, не переходя на отдельную страницу для редактирования, а сразу в самой таблице, а после сделанных изменений, нажать например "сохранить", т.е. чтобы была возможность просмотра и редактирования сразу на одной странице. Спасибо.

Не совсем понятен вопрос, но предположу, что ты хочешь на одной странице заполнить несколько форм для нескольких моделей

class AddressForm(forms.ModelForm):
    class Meta:
        model = Address
        fields = ["city", "street", "numb"]


class ProjectForm(forms.ModelForm):
    class Meta:
        model = Project
        fields = ["file", "sq", "rent_tax"]


class ProjectDetailForm(forms.ModelForm):
    class Meta:
        model = ProjectDetail
        exclude = ['created_at']

Views

def add_project(request):
    form_address = AddressForm(request.POST or None)
    form_project = ProjectForm(request.POST or None)
    form_detail = ProjectDetailForm(request.POST or None)

    if request.method == 'POST':
        if form_address.is_valid() and form_project.is_valid() and form_detail.is_valid():
            address_clean = form_address.cleaned_data
            project_clean = form_project.cleaned_data
            detail_clean = form_detail.cleaned_data

            Address.objects.update_or_create(**address_clean)
            p = Project.objects.update_or_create(
                manager = request.user,
                file = project_clean['file'],
                sq = project_clean['sq'],
                rent_tax = project_clean['rent_tax']
            )
            ProjectDetail.objects.create(
                project = p,
                **detail_clean
            )

            return redirect("crm:homepage")

    context = {'form_address':form_address, 'form_project':form_project, 'form_detail':form_detail,}

    return render(request, 'add_project.html', context)

Template

{% block content %}      

{% load crispy_forms_tags %}
{% csrf_token %}
{{ form_address|crispy}}
{{ form_project|crispy }}
{{ form_detail|crispy }}

{% endblock %}
Вернуться на верх