Jedes Feld in einem Formular enthält bereits help_text
, obwohl es als ein Parameter in dem Feld in der Form-Klasse deklariert werden sollte.
Z. B.
class SomeForm(forms.Form):
some_field1 = forms.CharField(verbose_name="Some Field 1", max_length=100, help_text="Please the first field.")
some_field2 = forms.CharField(verbose_name="Some Field 2", max_length=100, help_text="Please the second field.")
Ich persönlich sehe den Nutzen nicht in der Datenbank, die nicht in der auf das Gebiet gebunden Form.
EDIT:
So können Sie den Hilfetext außer Kraft setzen. Angenommen, Sie haben ein Wörterbuch für jedes Formular, das Sie in einem Formular überschreiben möchten.
my_form = SomeForm()
for field_name, new_help_text in my_form_override_help_text_dict.items():
my_form.fields[field_name].help_text = new_help_text
und dann my_form dem Kontext hinzufügen, bevor es zu machen: Vor dem Kontext Rendering, können Sie das Formular mit dem Wörterbuch als solche neu verarbeiten.
Jetzt wo und wie Sie den Hilfetext speichern möchten, ist Ihre Wahl; zB Ihre Lösung einen ModelFieldHelp mit drei Textfeldern (Modellname, Feldname, Hilfetext) würde zu schaffen arbeitet, dann müssen Sie etwas wie
class ModelHelpField(models.Model):
model_name = CharField(max_length=50)
field_name = CharField(max_length=50)
new_help_text = CharField(max_length=50)
field_help_qs= ModelHelpField.objects.filter(model_name='SomeModel')
my_form_override_help_text_dict = dict([(mfh.field_name, mfh.new_help_text) for mfh in field_help_qs])
Nun kann es sinnvoll sein, diesen Prozess zu automatisieren für all Modelle dass Sie Formulare erstellen, indem Sie eine Funktion in der Form oder dem Modell definieren, die diese ModelHelpFields automatisch erstellt (falls nicht definiert) und sich nach der Initialisierung mit dem aktuellen Hilfetext aktualisiert ...
Danke für den Zeiger, das habe ich verpasst ein. Der Vorteil des Speicherns von Hilfetexten in der Datenbank besteht darin, dass ich keine Quellen ändern muss, wenn die Verantwortlichen für das Schreiben von Hilfetexten diese ändern möchten. Ich brauche auch keine Releases, wenn sich diese Texte ändern. –
Ich denke, das macht Sinn, aber da das Eingabefeld nicht geändert wird (zB Name ist nicht editierbar, Länge nicht editierbar, Reihenfolge nicht editierbar), bin ich nicht sicher, ob es sinnvoll ist, die Hilfe dynamisch zu bearbeiten Text. Vielleicht haben sie die Vorlage bearbeiten? Aber wie auch immer, es kann auf hackische Art und Weise geschehen; Ich werde in Kürze bearbeiten. –
Ich sehe den Vorteil, es in der Datenbank und nicht in der Form zu haben, die an das Feld gebunden ist, da ich sie verwende, um dynamische Tabellen zu erstellen. – Logic1