Django - Formularfeld mit Variablen Inhalt füllen und ausblenden
Verfasst: Mittwoch 13. November 2024, 12:30
Hallo,
ich versuche mich seit neuem mit dem Framework vertraut zu machen. Bin aber definitiv ein blutiger Anfänger.
Mein erstes Projekt ( reine Spielerei ) sieht für meine Verhältnisse schon recht passabel aus. Ich stecke aber gerade bei einem Thema fest, wobei mir auch die sonst gute Doku nicht weiterhilft, oder ich es nicht verstehe.
Ich habe zwei DB Tabellen die mit Foreign verknüpft sind.
Meine models.py
In der Listendarstellung bekomme ich dann alle Aktien aufgelistet.
Wenn ich dann die einzelne Aktie aufrufe, bekomme ich diese mit den ganzen Transaktionen angezeigt.
Das klappt prima und damit bin ich erst mal zufrieden.
In dieser Ansicht habe ich ein Formular, in dem ich neue Transaktionen eingeben möchte.
Meine forms.py
In meinem Fall werden nun die 4 Felder im Formular angezeigt. Das Foreign Feld wird als Dropdown mit allen Aktien angezeigt, die in der Tabelle sind. Zum abspeichern muss ich dann die betroffene Aktie auswählen, und kann dann erst speichern.
Hier würde ich gerne das Feld mit der aktuell ausgewählten Aktie vorbelegen dass ich diese nicht immer auswählen muss. Mit "initial" habe ich es nicht hinbekommen. Wäre auch cool wenn ich das Feld mit dem richtigen Wert gar nicht mehr angezeigt bekomme.
Ich denke dass die Profis hier im Forum nur mit dem Kopf schütteln, aber wie gesagt sind es meine ersten Schritte.
Es wäre schön wenn ich hier den richtigen Tip bekomme wie ich so etwas bewerkstelligen kann.
Vielen Dank für eure Hilfe.
Gruß Mike
ich versuche mich seit neuem mit dem Framework vertraut zu machen. Bin aber definitiv ein blutiger Anfänger.
Mein erstes Projekt ( reine Spielerei ) sieht für meine Verhältnisse schon recht passabel aus. Ich stecke aber gerade bei einem Thema fest, wobei mir auch die sonst gute Doku nicht weiterhilft, oder ich es nicht verstehe.
Ich habe zwei DB Tabellen die mit Foreign verknüpft sind.
Meine models.py
Code: Alles auswählen
class Aktien(models.Model):
wkn_int = models.CharField(max_length=20, default='')
wkn_nat = models.CharField(max_length=20, default='')
name = models.CharField(max_length=100, default='')
def __str__(self):
return f"{self.wkn_int} {self.wkn_nat} {self.name}"
class Values(models.Model):
datum = models.DateField()
wkn_int = models.ForeignKey(Aktien, on_delete=models.CASCADE )
order_type = (
('Dividende', 'Dividende'),
('Kauf', 'Kauf'),
('Verkauf', 'Verkauf')
)
order = models.CharField(max_length=9, choices=order_type, default="Dividende")
betrag = models.DecimalField(max_digits=8, decimal_places=2)
def __str__(self):
return self.wkn_int
Wenn ich dann die einzelne Aktie aufrufe, bekomme ich diese mit den ganzen Transaktionen angezeigt.
Das klappt prima und damit bin ich erst mal zufrieden.
In dieser Ansicht habe ich ein Formular, in dem ich neue Transaktionen eingeben möchte.
Meine forms.py
Code: Alles auswählen
class OrderForm(forms.ModelForm):
class Meta:
model = Values
fields = "__all__"
widgets = {
'datum':forms.DateInput(attrs={'type':'date'}),
}
# Create custom widget for input data in Date fields
class DateInput(forms.DateInput):
input_type = 'date'
Hier würde ich gerne das Feld mit der aktuell ausgewählten Aktie vorbelegen dass ich diese nicht immer auswählen muss. Mit "initial" habe ich es nicht hinbekommen. Wäre auch cool wenn ich das Feld mit dem richtigen Wert gar nicht mehr angezeigt bekomme.
Ich denke dass die Profis hier im Forum nur mit dem Kopf schütteln, aber wie gesagt sind es meine ersten Schritte.
Es wäre schön wenn ich hier den richtigen Tip bekomme wie ich so etwas bewerkstelligen kann.
Vielen Dank für eure Hilfe.
Gruß Mike