2013-08-12 20 views
10

Ho una pagina dei dettagli dello studente in cui ho tutti i dati degli studenti mostrati in un formato annidato nel registro.Posso aggiungere testo di aiuto nei campi del modello django

Ora nel modulo so che posso aggiungere un testo di aiuto. Ma ora il mio manager vuole che quando mostriamo la pagina dei dettagli, ci dovrebbe essere aiuto al passaggio del mouse su ogni campo.

Ora sono confuso dove devo inserire 50-100 parole testo di aiuto per ogni tabella 5-6 tavoli

Questo è il modo che ho usato help_text nelle forme:

student_number = forms.CharField(
     required=False, max_length=64, label='Student Number', 
     help_text='Unique identifier for the student ') 

risposta

21

Sì, è possibile! Proprio come il tuo modulo, puoi aggiungere help_text ai tuoi campi modello.

+0

quindi come posso accedervi nel mio modello – user26

+0

lo puoi trovare qui: http://stackoverflow.com/questions/4279905/access-django-model-fields-label-and-help-text – nim4n

3

Di 'dettagli pagina 'intendi una forma di modifica di una singola istanza studente o l'elenco di tutti i record degli studenti? Stai usando l'admin di Django o usi la tua vista e modello, la definizione del modulo personalizzato o as_ul()/as_list(), ecc.? È difficile rispondere alla domanda semplicemente visualizzando la definizione del campo del modulo.

Cosa intendi con "per ogni tavolo"? Sarebbe la guida form inheritance, in modo da impostare il testo della guida dei campi modulo comuni solo nella super forma.

Se si esegue il rendering di un modello personalizzato, è possibile eseguire il rendering di help_text dove desiderato con {{my_field.help_text}}. Se si dispone di una vista simile a una tabella nel modello e si desidera il testo della guida, è sufficiente inserire un'istanza vuota del modulo nel contesto del modello in modo da poter accedere a help_texts e inserirlo nella tabella come suggerimento?

+0

By pagina di dettaglio, voglio dire che il mio visualizzazione personalizzata dove mostro l'unica informazione immediata di studente con i suoi modelli figlio come i profili, i genitori ecc. Ora 'form' è separato e non ha alcuna relazione con la pagina dei dettagli. Il modulo è solo per l'inserimento di informazioni. questo è un esempio di come posso usare il testo della guida di aiuto nel modulo, ma posso definire lo stesso help_text nei campi del modello. s – user26

+0

In questo caso caricare l'istanza nel modulo proprio come faresti per la modifica, in modo da avere accesso ai nomi dei campi, campo valori e testi di aiuto sul campo. Solo che non lo rendi come un modulo html con i campi di input. –

+0

Ma nella pagina di dettaglio sto mostrando circa 10 oggetti diversi e hanno 10 forme diverse. ho bisogno di caricarli tutti.o stavo pensando solo a creare un dizionario di tutti loro in vista e poi mostrare nel template – user26

0

Nel caso in cui si desideri utilizzare il modulo di modifica dell'amministratore standard con un breve testo di aiuto per ciascun campo ma a volte si avverte la necessità di fornire una spiegazione più lunga o addirittura una tabella con alcuni valori di esempio (senza limitare l'utente a un predefinito insieme di scelte) si può fare qualcosa di simile:

my_strange_field = models.FloatField('strange parameter', validators=[MinValueValidator(1.0)], 
            help_text='corr. factor x >= 1 <img src="/static/admin/img/icon-unknown.gif" ' 
               'width="15" height="15" title="typical values:\n' 
               'cow:\t2..3\ncat:\t5..7\ndog:\t11..15') 

questo modo si ottiene un breve testo "fattore corr x> = 1" seguito da un punto interrogativo nifty che presenta una tabella come tool-tip senza la è necessario modificare il modello change_form.

1

Quando si utilizzano i moduli del modello è possibile aggiungere etichette e help_texts ai campi generati dal modello. see docs

class PupilForm(forms.ModelForm): 

    class Meta: 
    model = Pupil 

    fields = ['student_number',] 
    labels = {'student_number': "Student Number",} 
    help_texts = {'student_number': "Unique identifier for the student",} 
2

Dopo aggiungere help_texts in forma, si dovrebbe fare smth come questo in un frontend:

<label title="{{ form.name.help_text }}" for="{{ form.name.id_for_label }}">Your label</label> 
{{ form.name }} {{ form.quantity }} 
Problemi correlati