Форум сайта python.su
Здравствуйте!
Недавно начал постигать азы Джанго, делаю страничку для ввода данных показаний счетчиков
есть две модели:
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)
Отредактировано Kindly (Ноя. 8, 2017 08:49:28)
Офлайн
{%if%} {%else%} Вам в помощь
Офлайн
form = data_meterform(initial={ "type_meter": Meter.objects.filter(type_meter="hot") })
Офлайн
FishHookУ меня формы выводятся в цикле, нельзя константой передать значение тип счётчика. фильтр для кверисета должен быть тоже динамическим.
Офлайн
Но в примере вы только одну форму показали. Откуда берется коллекция форм?
Офлайн
FishHookФорма одна, она содержит поля для ввода данных показаний счетчиков.
Откуда берется коллекция форм?
Офлайн
forms = [(form, "hot"), (form, "cold"), (form, "electro"), (form, "gas")]
{% for form, type in forms%} <form> <input type="hidden" value="{{type}}" /> {{ form.as_table }} </form> {% endfor %}
Отредактировано FishHook (Ноя. 8, 2017 14:02:57)
Офлайн
FishHook
forms =
{% for form, type in forms%}
<form>
<input type=“hidden” value=“{{type}}” />
{{ form.as_table }}
</form>
{% endfor %}
Отредактировано Kindly (Ноя. 8, 2017 15:11:23)
Офлайн
helm2004А что условием сделать? что то с чем то сравнивать?
{%if%} {%else%} Вам в помощь
Офлайн
А если появится новый счетчикДа блин! Запрос что ли трудно сделать?
types = Meter.objects.all().vlues_list("type_meter", flat=True) forms = [ (form, t) for t in types]
Офлайн