Registros de depuración de Django [1]

Siga el tutorial introductorio para escribir el código paso a paso, pise algunos pozos y registre lo siguiente

1 、 plantilla etiqueta de bloque no válida

Al llamar a la plantilla, me indica que el formato de la plantilla es incorrecto. KeyError: 'endfor', invalid_block_tag, etiqueta de bloque no válida en la línea 22, encontré en Internet que el signo de porcentaje y los corchetes en la plantilla no pueden tener espacios; de lo contrario, el reconocimiento es incorrecto. El mensaje desaparece después de quitar la etiqueta.

Traceback (última llamada más reciente):
  Archivo "D: \ Python36 \ lib \ site-packages \ django \ template \ base.py", línea 470, in par
se
    compile_func = self.tags [comando]
KeyError: 'endfor'

  Archivo "D: \ Python36 \ lib \ site-packages \ django \ template \ base.py", línea 534, en inv
alid_block_tag
    "o cargar esta etiqueta?" % (token.lineno, comando)
django.template.exceptions.TemplateSyntaxError: Etiqueta de bloque no válida en la línea 22: 'e
ndfor'. ¿Olvidó registrarse o cargar esta etiqueta?

{% for question in latest_question_list %}
<li><a href = "/polls/{
   
   {question.id}}/"> {
   
   { question.question_text}} </a></li>
{% endfor %}

2. Configuración de la ruta de la plantilla

Cuando render llama a la plantilla, solicita TemplateDoesNotExist, debe configurar TEMPLATES en el archivo setting.py y especificar la ruta de la plantilla a través de DIRS.

El settings.py generado por el comando startproject define los valores de la plantilla:

  • DIRS define una lista de directorios y el motor de plantillas busca estos directorios en el orden de la lista para encontrar archivos fuente de plantilla
  • APP_DIRS le dice al motor de plantillas si debe buscar plantillas en cada aplicación instalada
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,"/polls/templates")],
        'APP_DIRS': True,

 Archivo "D: \ Python36 \ lib \ site-packages \ django \ template \ loader.py", línea 19, en ge
t_template
    raise TemplateDoesNotExist (template_name, chain = chain)
django.template.exceptions.TemplateDoesNotExist: templates / pollindex.html
 

3. Problemas de codificación

A veces aparece UnicodeDecodeError, intenté las siguientes modificaciones y no estoy seguro de si resuelve el problema.

UnicodeDecodeError: el códec 'gbk' no puede decodificar el byte 0xa6 en la posición 9737:
 secuencia multibyte ilegal

1.Asegúrese de que la codificación predeterminada esté configurada en la primera línea de la página de vistas # - * - coding: utf-8 - * -

2. Asegúrese de que la codificación de la página html sea utf-8. Cuando guarde como UltraEdit, seleccione el formato como UTF-8 sin BOM.

BOM-Byte Order Mark, es la marca de orden de bytes

Si desea traer BOM o no, elija sin BOM como se describe a continuación.

https://blog.csdn.net/change_any_time/article/details/79572370

3.Asegúrese de que el archivo de configuración del proyecto esté configurado

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

4. Establecer en el archivo de configuración del proyecto

DEFAULT_CHARSET = 'utf-8'

 

4. Modo CBV

Varias indicaciones de error después de cambiar la vista a la clase

Más tarde, se descubrió que uno es agregar corchetes dobles después de as_View, y el otro es que la clase definida en la vista no puede tener el mismo nombre que la Vista predefinida.

 

TypeError: as_view () toma 1 argumento posicional pero se dieron 2
 

   path ("<int: pk>", views.DetailView.as_View (), name = 'detail'), AttributeError: tipo de objeto 'DetailView' no tiene atributo 'as_View' super (). execute (* args, ** opciones )

 

5. Personalice la plantilla de fondo de administrador

Después de modificar la plantilla de fondo del administrador, el servidor de ejecución no se pudo iniciar. Más tarde, se encontró que el orden de ejecución de fieldsets y list_display era normal.

Sobrescriba list_display primero y luego sobrescriba los conjuntos de campos.

IndentationError: unindent no coincide con ningún nivel de sangría exterior (admin.py,
 línea 16)

class QuestionAdmin(admin.ModelAdmin):

    list_display = ('question_text', 'pub_date', 'was_pub_recently')

    fieldsets = [
        (None,               { 'fields' : ['question_text']}),
        ('Date Information', { 'fields' : ['pub_date']}),
    ]
    
    inlines = [ ChoiceInline ]

 

Supongo que te gusta

Origin blog.csdn.net/bluewhu/article/details/104473389
Recomendado
Clasificación