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