Django ManyToMany MultipleChoice Field Edit Values Not Getting Checked
попытка показать уже выбранные элементы из отношения "многие ко многим" в поле множественного выбора Django, но выбранные значения не проверяются.
вот что я пробовал до сих пор
// models.py
class Person(models.Model):
name = models.CharField(max_length = 100, help_text = _('name required! maximum 100 characters'))
class Team(models.Model):
name = models.CharField(max_length = 100, help_text = _('name required! maximum 100 characters'))
members = models.ManyToManyField(Member, related_name = 'teams')
// forms.py
class TeamForm(forms.ModelForm):
teams = forms.MultipleChoiceField(choices = Team.objects.all(), widget = forms.CheckboxSelectMultiple)
def __init__(self, *args, **kwargs):
super(TeamForm, self).__init__(*args, **kwargs)
if kwargs.get('instance'):
initial = kwargs.setdefault('initial', {})
initial['teams'] = [t for t in kwargs['instance'].teams.all()]
// views.py
class PersonEditView(View):
team_form = TeamForm
template_name = 'persons/edit.html'
def get(self, request, person_id):
"""
"""
person = get_object_or_404(Person, pk = person_id)
return render(request, self.template_name, {
'team_form': self.team_form(instance = member, initial = {'teams': person.teams.all()}),
})
// edit.html template
<div class="">
<p class="">Team Information</p>
{% for team in team_form.teams.field.choices %}
<div class="">
<input id="{{ team.id }}" type="checkbox" value="{{ team.id }}" class="">
<label for="{{ team.id }}" class="">{{ team.name|title }}</label>
</div>
{% endfor %}
</div>
как сделать так, чтобы при редактировании деталей команды Person в списке команд отображались выбранные команды, отмеченные галочкой?