2017-06-17 164 views
0

我有一个表单。它为用户显示一个复选框列表。 因此,用户可以根据自己的选择来检查任何复选框。检查动态复选框

该系统正在工作。

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

例如,我第一次选择: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) 
+0

我不明白你想要什么。当表单被保存并且用户返回表单时,应该保存并显示更改。请张贴你的views.py(你在哪里渲染表格) – hansTheFranz

+0

感谢你的帮助,我更新了我的解释。我希望现在好一点。 – GrandGTO

回答

0

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

结果queryset可以作为上下文传递来绑定表单,以反映用户以前选择的游戏。