Недавно начал постигать азы Джанго, делаю страничку для ввода данных показаний счетчиков
есть две модели:
class Data_meter(models.Model):
'''Ввод показаний счетчиков'''
room_number = models.IntegerField('номер квартиры')
type_meter = models.ForeignKey(Meter, verbose_name='Вид счётчика')
accounting_year = models.IntegerField('Год учета', help_text='Введите год учёта', null=True)
accounting_month = models.IntegerField('Месяц учета', help_text='Введите месяц учёта', null=True)
dannie = models.IntegerField('Показание прибора', blank=False)
date = models.DateTimeField('дата', auto_now_add=True)
class Meta:
verbose_name = 'Данные счетчика'
verbose_name_plural = 'Данные счетчиков'
def __str__(self):
return 'Данные счетчика {}'.format(self.id)
и вторая модель:
class Meter(models.Model):
'''Администрирование счетчиков'''
type_meter = models.CharField('Вид счетчика', max_length=45, null=True, blank=True)
code_type_meter = models.CharField('Код счетчика', max_length=10, blank=True)
class Meta:
verbose_name = 'Вид счетчика'
verbose_name_plural = 'Виды счетчиков'
def __str__(self):
return str(self.type_meter) + '_' + str(self.code_type_meter)
шаблон имеет вид:
{% for meter in meters %}
<div class="col-md-3">
<h3>{{ meter.type_meter }}</h3>
<hr>
<form action="" method="post">
{{ form.as_p }}
</form>
А форма имеет такое описание:
class data_meterform(forms.ModelForm):
#type_meter = forms.ModelChoiceField(queryset=Meter.objects.all())
class Meta:
model = Data_meter
fields = ['room_number', 'accounting_month', 'accounting_year', 'type_meter', 'dannie']
ну и представление:
def index(request):
meters = Meter.objects.all()
form = data_meterform(initial={
"type_meter": type_meter ???
})
context = {
'meters': meters,
'form': form
}
return render(request, 'index.html', context)
Собственно проблема в том, что итерируя список счетчиков, я не могу установить по умолчанию выбранным значение формы тип счетчика. То есть у меня форма выводится например для горячей воды, значит и поле формы “вид счетчика” тоже должно быть выбрано горячая вода, ну и еще в добавок скрыто от юзера, но с этим проблем нет.
Как передать значение type_meter из итератора в форму? В представлении в initial не знаю как передать корректное значение для каждой итерации.