Pergunta

Gostaria de modificar um modelo de administração em Django.

 % cat /Library/Python/2.5/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html 
<fieldset class="module aligned {{ fieldset.classes }}">
  {% if fieldset.name %}<h2>{{ fieldset.name }}</h2>{% endif %}
  {% if fieldset.description %}<div class="description">{{ fieldset.description|safe }}</div>{% endif %}
  {% for line in fieldset %}
      <div class="form-row{% if line.errors %} errors{% endif %} {% for field in line %}{{ field.field.name }} {% endfor %} ">
      {{ line.errors }}
      {% for field in line %}
      <div{% if not line.fields|length_is:"1" %} class="field-box"{% endif %}>
          {% if field.is_checkbox %}
              {{ field.field }}{{ field.label_tag }}
          {% else %}
              {{ field.label_tag }}{{ field.field }}
          {% endif %}
          {% if field.field.field.help_text %}<p class="help">{{ field.field.field.help_text|safe }}</p>{% endif %}
      </div>
      {% endfor %}
      </div>
  {% endfor %}
</fieldset>

Que tipo de objeto é campo, e mais especificamente como eu ia conseguir o nome de um campo?

Foi útil?

Solução

field é uma instância de AdminField e field.field é uma instância de BoundField , para que possa referenciar o nome de campos com:

{{ field.field.name }}

Uma vez que você começa a mergulho profundo no personalização admin, é o único lugar a documentação é realmente falta. Dito isto, o código é bem escrito e fácil de entender se você tomar o tempo para pesquisá-lo, IMHO.

Não há muitos arquivos de modo a ter uma noite e lê-los. No seu caso, gostaria de começar com:

Outras dicas

Você feito sua pesquisa ?

Depois disso, eu iria começar debruçado sobre o código python que invoca seu modelo. Eu imagino que o campo é do formas sistema

O campo Uma classe que é responsável por fazer a validação, por exemplo, um EmailField que garante que seus dados é um válido e-mail.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top