ホームページ  >  記事  >  バックエンド開発  >  親会社に基づいて Django ModelForm のForeignKey の選択肢をフィルタリングする方法は?

親会社に基づいて Django ModelForm のForeignKey の選択肢をフィルタリングする方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-25 12:57:11838ブラウズ

How to Filter ForeignKey Choices in a Django ModelForm Based on Parent Company?

Django ModelForm でのForeignKey Choicesのフィルタリング

次のモデルが定義されているとします。

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)

目標クライアントの作成時に、利用可能なレートの選択肢が親内のレートに限定されるようにするためです。 company.

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)

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

「レート」に割り当てられた QuerySet をフィルタリングすることによって' フィールドでは、「base_rate」ForeignKey で利用可能な選択肢は、指定された会社内の適切なレートに制限されます。

以上が親会社に基づいて Django ModelForm のForeignKey の選択肢をフィルタリングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。