From 7da126c2f00ee60c94e130b83491345b0f1becfb Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Sat, 8 Apr 2023 01:00:01 +0300 Subject: [PATCH] Fix language % input --- FOSSDB_web/apps/fossdb/views.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/FOSSDB_web/apps/fossdb/views.py b/FOSSDB_web/apps/fossdb/views.py index 4d2496f..87c9b9f 100644 --- a/FOSSDB_web/apps/fossdb/views.py +++ b/FOSSDB_web/apps/fossdb/views.py @@ -1,9 +1,8 @@ from django.contrib.auth.decorators import login_required, permission_required -from django.forms import formset_factory from django.shortcuts import redirect, render -from .forms import ProjectForm, ProjectProgrammingLanguageForm -from .models import ProgrammingLanguage, Project +from .forms import ProjectForm, ProjectProgrammingLanguageFormSet +from .models import Project def index(request): @@ -17,27 +16,23 @@ def index(request): @login_required(login_url="login/") @permission_required("fossdb.add_post", login_url="login/", raise_exception=True) def add_project(request): - ProgrammingLanguageFormSet = formset_factory(ProjectProgrammingLanguageForm, extra=1) if request.method == "POST": project_form = ProjectForm(request.POST) - language_formset = ProgrammingLanguageFormSet(request.POST) + language_formset = ProjectProgrammingLanguageFormSet(request.POST, instance=Project()) if project_form.is_valid() and language_formset.is_valid(): project = project_form.save(commit=False) project.author = request.user project.save() - for language_form in language_formset: - if language_formset.is_valid(): - language = language_form.save(commit=False) - language.project = project - language.save() + language_formset.instance = project + language_formset.save() project_form.save_m2m() return redirect("/") else: project_form = ProjectForm() - language_formset = ProgrammingLanguageFormSet() + language_formset = ProjectProgrammingLanguageFormSet() context = { "title": "Add project",