gpt4 book ai didi

django - 表单中的动态选择字段

转载 作者:行者123 更新时间:2023-12-02 08:50:04 25 4
gpt4 key购买 nike

我有一个名为 picks 的模型,允许用户(从静态列表中)选择一支 Nfl 球队。每当他们选择一个团队时,他们就不能再选择该团队,因此他们选择的任何团队都会减少选择的选择。
我认为我有一个函数可以找出他们尚未选择的团队,但我不知道如何将此信息传递给表单。我在网上查看了许多表单示例,但还没有真正找到一个可以展示如何实现这一目标的示例。根据我所读到的内容,我似乎应该从 forms.py 文件中调用此函数,但该函数需要将用户 id 和联赛 id 作为参数传入,因此我宁愿在模型中执行此操作。有人可以解释一下,或者给我指出如何将选择字段选项从模型传递到表单的解释吗?

我对 Django 和 Python 都比较陌生,所以请原谅我在这里所做的任何明显的疏忽。

谢谢!

编辑

好吧,我想也许我在这里提供了太多关于该问题的非关键信息,我会尝试在这里简化问题:

我有一个创建表单的 View 。该表单中有一个选择框。我根据当前用户和启动 View 的 URL 中的变量,计算 View 内选择框中应包含的选项。我想知道如何将选择选项传递到表单中,或者这不是应该如何完成的。

目前我面前没有可以发布的代码,但我真的不认为它与问题相关。我希望我已经让它足够通用了。

最佳答案

我认为最简单的方法是修改表单的查询集。这个想法是排除您不想要的团队(因为它们已经被选择)。

假设您在团队用户之间存在关系,请执行以下操作(在您看来)

form.fields['team'].queryset = Teams.objects.exclude(selected_by_user = user.id)

记住一件事:

Teams.objects.exclude(selected_by_user = user.id, date = datetime(2008, 12, 31))

将匹配用户选择的团队并且不是来自 2008 年 12 月 31 日的团队,而

Teams.objects.exclude(selected_by_user = user.id,).exclude(date = datetime(2008, 12, 31))

将匹配用户从 2008 年 12 月 31 日起未选择的团队。

引用文献: Django Querysets (exclude filter)

关于django - 表单中的动态选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6120118/

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