gpt4 book ai didi

Django:limit_choices_to(这是正确的)

转载 作者:行者123 更新时间:2023-12-02 00:42:06 25 4
gpt4 key购买 nike

这是正确的吗?

class Customer(models.Model):
account = models.ForeignKey(Account)


class Order(models.Model):
account = models.ForeignKey(Account)
customer = models.ForeignKey(Customer, limit_choices_to={'account': 'self.account'})

我试图确保订单表单仅显示与订单属于同一帐户的客户选择。

如果我忽略了一些明显的不良设计谬误,请告诉我。

我主要关心的是:

limit_choices_to={'account': 'self.account'}

最佳答案

“它是否正确”的唯一答案是“运行它时它有效吗?”答案当然是否定的,所以我不知道你为什么在这里问。

无法动态使用 limit_choices_to 根据当前模型中另一个字段的值进行限制。做到这一点的最佳方法是自定义表单。定义一个 ModelForm 子类,并重写 __init__ 方法:

class MyOrderForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyOrderForm, self).__init__(*args, **kwargs)
if 'initial' in kwargs:
self.fields['customer'].queryset = Customer.objects.filter(account=initial.account)

关于Django:limit_choices_to(这是正确的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1968596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com