2009-12-29 7 views
8

Tengo un formulario con este aspecto:proceso de la clase media de un impreso que figura en Django a una plantilla

class MarketingActionForm(forms.ModelForm): 

    contact = ManyToManyByLetter(Contact, field_name="first_name") 
    #contact = AjaxManyToManyField(Contact, DICT_LOOKUP) 

    class Meta: 
     model = MarketingAction 
     exclude = ('created_by',) 

    class Media: 
      js = (
       settings.ADMIN_MEDIA_PREFIX + "js/SelectBox.js", 
       settings.ADMIN_MEDIA_PREFIX + "js/SelectFilter2.js", 
       settings.MEDIA_URL + "js/jquery.js", 
       settings.MEDIA_URL + "js/ajax_filtered_fields.js", 
      ) 

que procesar esta forma, con miras a la plantilla. Ahora me pregunto por qué la clase Media no se procesa automáticamente en la plantilla, al menos no aparece en el resultado .html.

Por lo tanto, quiero preguntar qué tengo que hacer para que las definiciones de los medios se muestren en el resultado de .html.

No lo encontré en el django .docs. Por lo tanto, pensé que se procesará automáticamente.

Respuesta

7

Usted tendrá que añadir {{form.media}} en la plantilla sí mismo. Las referencias para formar un medio no se insertan automáticamente.

Sería muy difícil hacerlo ya que todo el documento html, incluida la sección <head>, debe ser mecanografiado por el diseñador de la plantilla y django tendría que adivinar dónde insertar los enlaces si intentara hacerlo automáticamente (lo haría ser especialmente difícil de adivinar correctamente para los medios javascript - si hay dependencias entre los scripts)

+0

¡muchas gracias! esa fue la solución :-) –

Cuestiones relacionadas