如何在Django ModelForm中筛选ForeignKey选项?
models.py:
class Company(models.Model): name = ...class Rate(models.Model): company = models.ForeignKey(Company) name = ...class Client(models.Model): name = ... company = models.ForeignKey(Company) base_rate = models.ForeignKey(Rate)
CompaniesRatesClientsClientRateCompany's RatesCompany's Rates.
ClientCompanyCompanyRateCompany
forms.py
from models import *from django.forms import ModelFormclass ClientForm(ModelForm): class Meta: model = Client
views.py
from django.shortcuts import render_to_response, get_object_or_404from models import *from forms import *def addclient(request, company_id):
the_company = get_object_or_404(Company, id=company_id)
if request.POST:
form = ClientForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(the_company.get_clients_url())
else:
form = ClientForm()
return render_to_response('addclient.html', {'form': form, 'the_company':the_company})manipulator.fields[0].choices = [(r.id,r.name) for r in Rate.objects.filter(company_id=the_company.id)]
ForeignKey.limit_choices_tothe_company.id
相关分类