gpt4 book ai didi

python - 如何使用 django 2 创建适应用户数量的表单?

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:59 26 4
gpt4 key购买 nike

我是 django 的大佬,我想创建一个可以使他适应用户数量的表单。目标是声明员工是否存在以及他们一天的工作时间,因为员工数量可能会随着一天的变化而变化。因此,我想到创建两个变量:一个整数,用于计算一天中工作的小时数;另一个 bool 值,对应于员工是否存在,并根据员工的数量复制多次。

所以,我测试了:

表单.py:

class HoursDeclarationForm(forms.Form):
number_of_hours = forms.FloatField(required=True)
for user in User.objects.all():
presence = forms.BooleanField(label="{0} {1}".format(
User.first_name,
User.last_name
)
)

views.py:

def hours_declaration (request):
form = HoursDeclarationForm(request.POST or None)

return render (
request,
'HoursDeclaration/hours_declaration.html'
, locals()
)

hours_declaration.html:

<h1>Ceci est la page ou tu peux attribuer à chaque salarié le nombre 
d'heure qu'il a effectué.<h1>
<form action="{% url "hours_declaration" %}" method = "post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="submit">
</form>

但是我得到一个复选框,前面是:“django.db.models.query_utils.DeferredAttribute object at 0x00000255505DEF98 django.db.models.query_utils.DeferredAttribute object at 0x00000255505DEFD0”:,无论用户数量有多少。
如果我的句子措辞不正确,请原谅我,我的英语不是很好,谢谢您的回答。

最佳答案

您似乎通过表单字段实现了某种小部件。我不确定这是个好主意。该字段可能应该是 ModelMultipleChoiceField [Django-doc] ,也许您可​​以使用 CheckboxSelectMultiple widget [Django-doc] 。因此,我们可以通过以下方式实现:

class HoursDeclarationForm(forms.Form):
number_of_hours = forms.FloatField(required=True)
presense = <b>forms.ModelMultipleChoiceField</b>(
queryset=User.objects.all(),
<b>widget=forms.CheckboxSelectMultiple</b>
)

关于python - 如何使用 django 2 创建适应用户数量的表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57747055/

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