Django как правильно вернуться в форму редактирования с выбранной компанией в другом окне?

Есть 3 модели:

class Company(models.Model): #Компании производители а/м

company = models.CharField(max_length=25)

class Car(models.Model): #Модели а/м

car = models.CharField(max_length=25)
company = models.ForeignKey(Company, on_delete = models.CASCADE) 

class Person(models.Model): #Водители

name = models.CharField(max_length=20)
car = models.ForeignKey(Car, on_delete = models.CASCADE)

При редактировании записи Person список моделей отфильтрован по компании: forms.py:

from django import forms from .models import *

class CompanyForm(forms.ModelForm):

class Meta:
    model = Company
    fields = ('company',)

class CompanySelectForm(forms.Form):

company = forms.ModelChoiceField(queryset=Company.objects.all().order_by('company'))
class Meta:
    fields = ('company',)

class PersonForm(forms.ModelForm):

class Meta:
    model = Person
    fields = ('name', 'car',)
def __init__(self, company, *args, **kwargs):
    super(PersonForm, self).__init__(*args, **kwargs)
    self.fields['car'].queryset = Car.objects.filter(company=company)  #Фильтр моделей автомобилей по компании

views.py:

def edit(request, id):

person = Person.objects.get(id = id)
car = Car.objects.get(id = person.car_id)
company = Company.objects.get(id = car.company_id)
if request.method == 'POST':
    form = PersonForm(car.company_id, request.POST, instance=person)
    if form.is_valid():
        form.save()
    return redirect('/person/')
else:
    companys = CompanyForm(instance=company)
    form = PersonForm(car.company_id, instance=person)
return render(request, 'person/edit.html', {'companys':companys, 'form':form})

def Company_select(request):

if request.method == 'POST':
    form = CompanySelectForm(request.POST)
    if form.is_valid:
        return redirect('/person/edit/1/') #Как правильно вернуться в форму редактирования с выбранной компанией?
else:
    form = CompanySelectForm()
return render(request, 'person/company_select.html', {'form':form})

Ответы (0 шт):