在我更改了一些模型字段 (Django) 之后,尝试访问 Django 管理时 /admin/myapp/mymodel 出现类型错误

TypeError at /admin/myapp/mymodel when trying to access django admin, after I changed some model fields (Django)

我正在用 Django 开发应用程序。

在我重命名模型中的某些字段之前,它工作正常。
我有 运行 迁移和 makemigrations。
然后,当我以管理员身份登录并尝试访问 "myapp" 部分中的 "mymodel" 时,这就是我得到的:

TypeError at /admin/myapp/glossary_entry/
not enough arguments for format string

有什么问题吗? (在访问管理页面中的模型内容之前,我的应用程序中的其他所有内容都运行良好)

我post这里有完整的错误信息:

TypeError at /admin/myapp/glossary_entry/ not enough arguments for format string Request Method: GET Request URL: http://127.0.0.1:8000/admin/myapp/glossary_entry/ Django Version: 2.2.2 Exception Type: TypeError Exception Value: not enough arguments for format string Exception Location: C:\Users\Tommaso\Django rest framework\Udemy Django\Myproject\myapp\models.py in str, line 95 Python Executable: C:\Applicazioni_Tommaso\Phyton\python.exe Python Version: 3.6.5 Python Path: ['C:\Users\Tommaso\Django rest framework\Udemy ' 'Django\Myproject', 'C:\Applicazioni_Tommaso\Phyton\python36.zip', 'C:\Applicazioni_Tommaso\Phyton\DLLs', 'C:\Applicazioni_Tommaso\Phyton\lib', 'C:\Applicazioni_Tommaso\Phyton', 'C:\Applicazioni_Tommaso\Phyton\lib\site-packages', 'C:\Applicazioni_Tommaso\Phyton\lib\site-packages\pip-19.1.1-py3.6.egg'] Server time: Sat, 28 Sep 2019 08:56:32 +0000 Error during template rendering In template C:\Applicazioni_Tommaso\Phyton\lib\site-packages\django\contrib\admin\templates\admin\base.html, error at line 62

not enough arguments for format string 52 {% endblock %} 53 54 {% endif %} 55 {% endblock %} 56
{% block nav-global %}{% endblock %} 57 58 59 {% block breadcrumbs %} 60 61 {% trans 'Home' %} 62 {% if title %} › {{ title }}{% endif %} 63 64 {% endblock %} 65 {% endif %} 66 67 {% block messages %} 68 {% if messages %} 69 {% for message in messages %} 70 {{ message|capfirst }} 71 {% endfor %} 72 {% endif %}

这是我的 admin.py:

from django.contrib import admin 
from .models import glossary_entry 

admin.site.register(glossary_entry)

这是我的 model.py:

from django.db import models
from django.utils import timezone
from django.core.exceptions import ValidationError 


Admin_approval_switch_choices=[
    ("show","show"), # 1=valore da inserire negli script (=variabile), 2=valore assunto in relatà nel db
    ("hide","hide"),
    ]


class glossary_entry(models.Model):



    Lemma = models.CharField(max_length=256, blank=True, null=True)

    Acronimo = models.CharField(max_length=25, blank=True, null=True)

    Definizione = models.TextField(blank=True, null=True) 

    Ambito_riferimento = models.CharField(max_length=256, blank=True, null=True)

    Autore_definizione = models.CharField(max_length=256, blank=True, null=True)

    Posizione_definizione = models.CharField(max_length=256, blank=True, null=True)

    Url_definizione = models.URLField(max_length=400, blank=True, null=True)

    Titolo_documento_fonte = models.CharField(max_length=256, blank=True, null=True)

    Autore_documento_fonte = models.CharField(max_length=256, blank=True, null=True)

    Host_documento_fonte = models.CharField(max_length=256, blank=True, null=True)

    Url_documento_fonte = models.URLField(max_length=400, blank=True, null=True)

    Data_inserimento_entry = models.DateField(blank=False, null=False, default=timezone.now().date() )

    Id_statico_entry = models.CharField(max_length=256, blank=False, null=False, default="ITCH00000")



    Admin_approval_switch = models.CharField(max_length=30,blank=False, null=False, default=Admin_approval_switch_choices[1], choices=Admin_approval_switch_choices)



    class Meta:
        ordering = ['-Admin_approval_switch', 'Lemma', 'Id_statico_entry']

    def clean(self):
        if not (self.Lemma or self.Acronimo or self.Definizione or  self.Ambito_riferimento or self.Autore_definizione or self.Posizione_definizione or self.Url_definizione or self.Titolo_documento_fonte or self.Autore_documento_fonte or self.Host_documento_fonte or self.Url_documento_fonte):
            raise ValidationError("Non è stata inserita alcuna terminologia. Compilare almeno un campo del form.")

    def __str__(self):    
        return  "%s / %s - %s - [%s]"  %  (self.Lemma, self.Id_statico_entry, self.Admin_approval_switch)  

已解决:

在 class 元的最后一行,在 model.py 中:

def __str__(self):    
    return  "%s / %s - %s - [%s]"  %  (self.Lemma, self.Id_statico_entry, self.Admin_approval_switch) 

"string inserting tags" 和 "inserting arguments" 不匹配(请原谅我的英语不好)。

我将这一行替换为:

def __str__(self):    
    return  "%s - %s - [%s]"  %  (self.Lemma, self.Id_statico_entry, self.Admin_approval_switch) 

现在一切正常。