Django-Using Forms.CheckboxSelectMultiple

问题描述 投票:1回答:1

我正在尝试为数据库中的名称创建复选框的多选列表。

我以为我可以在from中执行以下操作,并在模板中执行某种循环以呈现每个名称,但是请注意,我尝试了。这是正确的方法吗,有关如何在模板中呈现此方法的任何线索?

谢谢

from django import forms
from .models import Player

class PlayerForm(forms.Form):

    team = forms.MultipleChoiceField(
        widget=forms.CheckboxSelectMultiple,
        choices=[Player.objects.all()]
    )


from django.db import models

class Player(models.Model):
    lname = models.CharField(max_length=10, verbose_name='Last Name')
    fname = models.CharField(max_length=10, verbose_name='First Name')
    wins = models.SmallIntegerField(default=0, null=True, blank=True)
    loss = models.SmallIntegerField(default=0, null=True, blank=True)


    def __str__(self):
        return "{}".format(self.lname)

    class Meta:
        ordering = ['lname']
django
1个回答
0
投票

不完全是。如果需要在模型选项中选择一个选项,则应使用ModelMultipleChoiceField field [Django-doc]。这不仅将使处理数据更加方便,而且还将在每次查询数据库时提供帮助,因此,如果添加新的ModelMultipleChoiceField,则可以选择该数据库。

因此,您可以将其实现为:

Player

此外,最好将您的表格命名为class TeamForm(forms.Form): team = forms.ModelMultipleChoiceField( widget=forms.CheckboxSelectMultiple, queryset=Player.objects.all() ),因为您此处没有创建/更新/ ... TeamForm,但您选择了一个团队。

© www.soinside.com 2019 - 2024. All rights reserved.