Enorm enthousiast ben ik onlangs begonnen met een klein Django projectje om het brandstofgebruik van mijn auto vast te leggen. Voorheen deed ik dat in Excel, maar ik wil dit via een vpn en mijn telefoon direct in een DB stoppen op mijn NAS.
In principe ben ik een heel eind, alleen heb ik nog een paar wensen waar ik nog niet helemaal uitkom, mede misschien omdat ik de juiste terminologie niet weet te vinden om op te zoeken met Google.
Ik heb het volgende model:
n mijn formulier wil ik eigenlijk (net als in mijn Excel sheetje) alleen de datum aanpassen eventueel, de kilometerstand, het aantal getankte liters en de literprijs in willen vullen. Op basis van die gegevens en de KM-stand van de vorige tankbeurt wil ik dat de trip (mileage - vorige mileage) wordt berekend en de total_cost op basis van de liters en liter prijs.
Dat laatste heb ik al min of meer voor elkaar doordat het berekend wordt bij het submitten van het formulier:
Maar eigenlijk wil ik het zichtbaar hebben als ik het formulier invul. Voorlopig voldoet het wel, maar het zou mooi zijn als de berekening in het formulier zichtbaar is, zodat ik het evt kan corrigeren, mocht het nodig zijn.
Daarnaast ben ik op zoek naar hoe ik de trip afstand bereken.
In principe moet denk ik ik bij het laden van de data voor het formulier de laatste mileage ophalen. Dat is op zich gemakkelijk, want dat is ook altijd de hoogste value van die column in principe (tenzij ik ga sjoemelen met mijn km-teller
) maar dan? Ik had al zitten denken aan een oplossing met javascript, maar hoe en waar voeg ik dat in in mijn form? Het forumulier wordt dynamisch opgebouwd en ik vind de validaties dmv boodstrap wel erg tof. Daarnaast vraag ik me af hoe ik dan in het javascriptje kan verwijzen naar velden in het formulier, als die helemaal nog niet bestaan als het formulier nog gegenereerd moet worden.
Dit formulier heb ik gemaakt mbv deze tutorial: https://simpleisbettertha...ies/beginners-guide/1.11/
Ik ben nu al 2 avondjes aan het zoeken, maar ik zit even vast. Kan iemand mij weer even op weg helpen?
In principe ben ik een heel eind, alleen heb ik nog een paar wensen waar ik nog niet helemaal uitkom, mede misschien omdat ik de juiste terminologie niet weet te vinden om op te zoeken met Google.
Ik heb het volgende model:
Python: models.py
1
2
3
4
5
6
7
| class fuel_stats(models.Model): date = models.DateField(("Date"), default=date.today) mileage = models.PositiveIntegerField() liter = models.DecimalField(max_digits=5, decimal_places=2) price_liter = models.DecimalField(max_digits=5, decimal_places=3) trip = models.PositiveSmallIntegerField() total_cost = models.DecimalField(max_digits=5, decimal_places=2) |
n mijn formulier wil ik eigenlijk (net als in mijn Excel sheetje) alleen de datum aanpassen eventueel, de kilometerstand, het aantal getankte liters en de literprijs in willen vullen. Op basis van die gegevens en de KM-stand van de vorige tankbeurt wil ik dat de trip (mileage - vorige mileage) wordt berekend en de total_cost op basis van de liters en liter prijs.
Dat laatste heb ik al min of meer voor elkaar doordat het berekend wordt bij het submitten van het formulier:
Python: models.py
1
2
3
4
5
6
7
| def get_computed(self): result = self.liter * self.price_liter return result def save(self, *args, **kwargs): self.total_cost = self.get_computed() super(fuel_stats, self).save(*args, **kwargs) |
Maar eigenlijk wil ik het zichtbaar hebben als ik het formulier invul. Voorlopig voldoet het wel, maar het zou mooi zijn als de berekening in het formulier zichtbaar is, zodat ik het evt kan corrigeren, mocht het nodig zijn.
Daarnaast ben ik op zoek naar hoe ik de trip afstand bereken.
In principe moet denk ik ik bij het laden van de data voor het formulier de laatste mileage ophalen. Dat is op zich gemakkelijk, want dat is ook altijd de hoogste value van die column in principe (tenzij ik ga sjoemelen met mijn km-teller
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <form method="POST" class="post-form" id="new_fuel" novalidate>{% csrf_token %} {% for field in form %} <div class="form-group"> {{ field.label_tag }} {% if form.is_bound %} {% if field.errors %} {% render_field field class="form-control is-invalid form-control-lg" %} {% for error in field.errors %} <div class="invalid-feedback"> {{ error }} </div> {% endfor %} {% else %} {% render_field field class="form-control is-valid form-control-lg" %} {% endif %} {% else %} {% render_field field class="form-control form-control-lg" %} {% endif %} {% if field.help_text %} <small class="form-text text-muted"> {{ field.help_text }} </small> {% endif %} </div> {% endfor %} <button type="submit" class="btn btn-primary form-control-lg">Save</button> </form> |
Dit formulier heb ik gemaakt mbv deze tutorial: https://simpleisbettertha...ies/beginners-guide/1.11/
Ik ben nu al 2 avondjes aan het zoeken, maar ik zit even vast. Kan iemand mij weer even op weg helpen?
[ Voor 6% gewijzigd door Yukkie op 05-02-2019 21:28 ]
We've got that ring of confidence