为什么Django要在遗留数据库的表名中添加一个额外的字符?
我正在跟踪一个遗留数据库的安装。尽管如此,Django使用的方法中的一个重要部分是向遗留sqlite数据库(table:Dogs)中的唯一表添加一个额外的字符(s) 下面是额外角色的屏幕截图: 下面是我的整个models.py 通过python的sqlite库访问数据库,我可以查询表'dogs',并获得预期的结果,因为查询'dogss'会产生错误“没有这样的表:dogss”为什么Django要在遗留数据库的表名中添加一个额外的字符?,django,python-3.8,Django,Python 3.8,我正在跟踪一个遗留数据库的安装。尽管如此,Django使用的方法中的一个重要部分是向遗留sqlite数据库(table:Dogs)中的唯一表添加一个额外的字符(s) 下面是额外角色的屏幕截图: 下面是我的整个models.py 通过python的sqlite库访问数据库,我可以查询表'dogs',并获得预期的结果,因为查询'dogss'会产生错误“没有这样的表:dogss” 这是Django中的默认显示,无需指定详细名称\u复数,您可以在此处获得文档 标准做法是使用单数名称命名表,因此默认情况
这是Django中的默认显示,无需指定
详细名称\u复数
,您可以在此处获得文档
标准做法是使用单数名称命名表,因此默认情况下,Django会添加一个s
,以显示表中的项目列表。
以下是有关此主题的讨论:
(在
教程
表的情况下,您可能还显示了教程
)啊!伙计,我已经看过所有的医生了,但我可能看对了。而且,我愚蠢地认为它不是复数,而是重复了最后一个字符,所以我的google fu太离谱了。谢谢
from django.db import models
from datetime import datetime
# Create your models here.
class Tutorial(models.Model):
tutorial_title = models.CharField(max_length=200)
tutorial_content = models.TextField()
tutorial_published = models.DateTimeField('date published', default=datetime.now())
def __str__(self):
return self.tutorial_title
class Dogs(models.Model):
#id = models.AutoField(primary_key=True)
date_of_death = models.TextField(db_column='Date of Death', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters.
land_of_birth = models.TextField(db_column='Land of Birth', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters.
registered_name = models.TextField(db_column='Registered Name', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters.
call_name = models.TextField(db_column='Call Name', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters.
breeder_name = models.TextField(db_column='Breeder_name', blank=True, null=True) # Field name made lowercase.
registration_field = models.TextField(db_column='Registration#', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
land_of_standing = models.TextField(db_column='Land of Standing', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters.
dam = models.TextField(db_column='Dam', blank=True, null=True) # Field name made lowercase.
known_offspring = models.TextField(db_column='Known Offspring', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters.
colour = models.TextField(db_column='Colour', blank=True, null=True) # Field name made lowercase.
breeder = models.TextField(db_column='Breeder', blank=True, null=True) # Field name made lowercase.
kennel = models.TextField(db_column='Kennel', blank=True, null=True) # Field name made lowercase.
owner_name = models.TextField(db_column='Owner_name', blank=True, null=True) # Field name made lowercase.
weight = models.TextField(db_column='Weight', blank=True, null=True) # Field name made lowercase.
sire = models.TextField(db_column='Sire', blank=True, null=True) # Field name made lowercase.
did = models.IntegerField(blank=True, null=True)
sex = models.TextField(db_column='Sex', blank=True, null=True) # Field name made lowercase.
titles = models.TextField(db_column='Titles', blank=True, null=True) # Field name made lowercase.
date_of_birth = models.DateTimeField(db_column='Date of Birth', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters.
owner = models.TextField(db_column='Owner', blank=True, null=True) # Field name made lowercase.
distinguishing_features = models.TextField(db_column='Distinguishing Features', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters.
size = models.TextField(db_column='Size', blank=True, null=True) # Field name made lowercase.
def __str__(self):
return self.registered_name
class Meta:
managed = False
db_table = 'dogs'
app_label = 'dogs'