选中动态复选框

时间:2017-06-17 14:13:59

标签: django python-3.x django-1.11

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

这个系统正在运作。

但是,我想向用户表明他之前做了什么选择。最简单的解决方案是检查之前选中的每个复选框。

例如,我第一次选择:enter image description here

当我的选择很好并且我回去编辑我的选择时,可能就是这样:enter image description here

所以我可以添加其他选项或删除之前的任何选项。

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

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)

1 个答案:

答案 0 :(得分:0)

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

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