gpt4 book ai didi

python - 从foreignkey中过滤属于用户的所有对象

转载 作者:行者123 更新时间:2023-12-01 05:21:02 25 4
gpt4 key购买 nike

我有两个模型

class MyClients(models.Model):
user=models.ForeignKey(User)
client_name=models.CharField(max_length=100)
client_address=models.CharField(max_length=100,null=True, blank=True)


class MyIvoice(models.Model):
user=models.ForeignKey(User)
my_client=models.ForeignKey(MyClients)

在表单中,将显示外键 (MyClients) 中的所有对象,但我只想过滤用户列出的客户端名称,而不是 Myclient 模型中的所有客户端。我怎样才能在模型中实现这一点?

我知道我可以在 View 中执行此操作,但是可以在模型中执行此操作吗?因为我希望用户在表单中选择一个客户。

最佳答案

在模型上执行此操作是不正确的,您想在表单上执行此操作。

如果您已经知道表单的用户实例,则可以使用 queryset kwarg 在类级别执行此操作(当您定义字段时):

client = forms.ModelChoiceField(queryset=MyClients.objects.filter(user=my_user))

但是,如果您只能在创建时访问用户实例,那么您仍然可以稍后覆盖查询集(通常在 __init__ 中):

self.fields['client'].queryset = MyClients.objects.filter(user=my_user)

关于python - 从foreignkey中过滤属于用户的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22381938/

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