相关疑难解决方法(0)

在Django和Django REST Framework中使用保留字"class"作为字段名称

问题描述

分类学是在共同特征的基础上定义和命名生物有机体群的科学.生物被组合成分类群(单数:分类单元),这些组被赋予分类等级.现代使用的主要等级是领域,王国,门,阶级,秩序,家庭,属和物种.有关维基百科中的分类分类排名的更多信息.

按照维基百科文章分类排名中的红狐狸示例,我需要创建一个这样的JSON输出:

{
    "species": "vulpes",
    "genus": "Vulpes",
    "family": "Canidae",
    "order": "Carnivora",
    "class": "Mammalia",
    "phylum": "Chordata",
    "kingdom": "Animalia",
    "domain": "Eukarya"
}
Run Code Online (Sandbox Code Playgroud)

由于Django REST Framework基于字段名称创建密钥,因此问题出现在分类等级(示例中为粗体),因为它是Python中的保留字,不能用作变量名.

我试过了什么

在Django中创建的模型类看起来像这样:

class Species(models.Model):
    species = models.CharField()
    genus = models.CharField()
    family = models.CharField()
    # class = models.CharField() - class is reserved word in Python
    # class_ = models.CharField() - Django doesn't allow field names
    # ending with underscore. That wouldn't be either …
Run Code Online (Sandbox Code Playgroud)

python django bioinformatics python-3.x django-rest-framework

9
推荐指数
4
解决办法
1545
查看次数