Fix language % input

This commit is contained in:
Kristofers Solo 2023-04-08 01:00:01 +03:00
parent a969a90007
commit 7da126c2f0

View File

@ -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",