Django 选中“动态”复选框

Django 选中“动态”复选框,django,python-3.x,django-1.11,Django,Python 3.x,Django 1.11,我有一张表格。它为用户显示一个复选框列表。 因此,用户可以根据自己的选择选中任何复选框 这个系统正在运行 但是,我想向用户指出他之前所做的选择。最简单的解决方案是选中之前选中的每个复选框 例如,我第一次必须选择: 当我的选择是好的,如果我回去编辑我的选择,它可能是这样的: 因此,我可以添加另一个选项或删除任何以前的选项 我希望我的英语很清楚,很抱歉:) forms.py: class GamesRegisterForm(forms.Form): favorite_games_choice

我有一张表格。它为用户显示一个复选框列表。 因此,用户可以根据自己的选择选中任何复选框

这个系统正在运行

但是,我想向用户指出他之前所做的选择。最简单的解决方案是选中之前选中的每个复选框

例如,我第一次必须选择:

当我的选择是好的,如果我回去编辑我的选择,它可能是这样的:

因此,我可以添加另一个选项或删除任何以前的选项

我希望我的英语很清楚,很抱歉:)

forms.py:

class GamesRegisterForm(forms.Form):
    favorite_games_choices = []
    for game in Games.objects.all().order_by('title'):
        favorite_games_choices.append((game.guid, game.title), )    

    favorite_games = forms.MultipleChoiceField(
        required=True,
        initial=True,
        widget=forms.CheckboxSelectMultiple(),
        choices=favorite_games_choices,
    )

class LogonForm(forms.Form):
    email = forms.EmailField(
    )
    password = forms.CharField(
        widget=forms.PasswordInput,
        min_length=8, 
    )   
models.py

class Games(models.Model):
    guid = models.CharField(max_length=100, unique=True, null=False, verbose_name="GUID")
    title = models.CharField(max_length=100, null=False, verbose_name="Titre")
    logo = models.CharField(max_length=100, null=True, blank=True, verbose_name="Logo")
    date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de création")
    update = models.DateTimeField(auto_now=True, verbose_name="Dernière modification")
    def __str__(self):
        return self.title

class FavoriteGames(models.Model):
    game = models.ForeignKey('Games')
    user = models.ForeignKey(settings.AUTH_USER_MODEL)

您必须更新
视图.py
,并包含用户。这样,您可以查询数据库(通过FavoriteGames)以选择用户检查的所有游戏(您已经知道,因为它已被记录)


结果查询集可以作为绑定表单的上下文传递,因此它反映了用户以前选择的游戏。

我不能完全得到您想要的。保存表单后,用户返回表单时,应保存并显示更改。请发布您的views.py(在您呈现表单的地方)感谢您的帮助,我更新了我的解释。我希望现在好多了。