Всем привет.
Имеется форма
class MarkForm(ModelForm):
value = CharField(max_length=1, widget=TextInput())
class Meta:
model = Mark
fields = ['value']
Она же выводиться в некотором количестве в шаблон с помощью template tag:
@register.assignment_tag(takes_context=True)
def add_mark(context):
mark = Mark.objects.get(pupil=context['pupil'],
lesson=context['lesson'])
form = MarkForm(initial={'value': mark.value},
prefix=mark.id)
return form
{% for lesson in lessons %}
{% add_mark as form %}
<td>{{ form.value }}</td>
{% endfor %}
Необходимо сохранить (обновить) каждую из форм в соответствующий объект:
class Mark(models.Model):
value = models.CharField(max_length=1, verbose_name='Оценка',
blank=True, default='',
choices=MARKS)
pupil = models.ForeignKey(Pupil, verbose_name='Ученик')
lesson = models.ForeignKey(Lesson, verbose_name='Занятие')
Единственным возможный способ, который мне приходит в голову, - идентификация по prefix/primary key, но как это реализовать на практике ума не приложу. Предположу, что есть еще варианты.
Update: Вьюшка
context_object_name = 'lessons'
def get_context_data(self, **kwargs):
context = super(TableListView, self).get_context_data(**kwargs)
context['group'] = Group.objects.get(pk=self.kwargs['group'])
context['subj'] = self.kwargs['subj']
context['year'] = self.kwargs['year']
context['month'] = self.kwargs['month']
return context