Menapis Pilihan ForeignKey dalam Borang Model Django
Andaikan anda mempunyai model berikut ditakrifkan:
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)
Matlamat adalah untuk memastikan bahawa semasa membuat pelanggan, pilihan kadar yang tersedia adalah terhad kepada pilihan dalam induk syarikat.
Dalam fail Django 1.0 forms.py:
from models import * from django.forms import ModelForm class ClientForm(ModelForm): class Meta: model = Client def __init__(self, company_id, *args, **kwargs): '''Filter the rate choices to only include those for the specified company''' super(ClientForm, self).__init__(*args, **kwargs) self.fields['base_rate'].queryset = Rate.objects.filter(company_id=company_id)
Dalam views.py:
from django.shortcuts import render_to_response, get_object_or_404 from models import * from forms import * def addclient(request, company_id): the_company = get_object_or_404(Company,>
Dengan menapis QuerySet yang diberikan kepada 'rate ', pilihan yang tersedia untuk ForeignKey 'base_rate' adalah terhad kepada kadar yang sesuai dalam tempoh yang ditetapkan syarikat.
Atas ialah kandungan terperinci Bagaimana untuk Menapis Pilihan ForeignKey dalam Borang Model Django Berdasarkan Syarikat Induk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!