首页 > 后端开发 > Python教程 > 如何根据母公司过滤 Django ModelForm 中的外键选择?

如何根据母公司过滤 Django ModelForm 中的外键选择?

Susan Sarandon
发布: 2024-11-25 12:57:11
原创
888 人浏览过

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

在 Django ModelForm 中过滤外键选择

假设您定义了以下模型:

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)
登录后复制

目标是为了确保在创建客户端时,可用的费率选择仅限于父级内的费率选择

在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,>
登录后复制

通过过滤分配给'rate的QuerySet ' 字段,'base_rate' 外键的可用选择仅限于指定公司内的适当费率。

以上是如何根据母公司过滤 Django ModelForm 中的外键选择?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板