Django模型命名约定

时间:2019-08-20 23:49:44

标签: python django django-models

任何人都可以查看下面的代码以在models.py中创建表/类。我需要这些列名称,因为我计划通过excel在外部位置自动上载表值。因此,不想更改列名称。我尝试用单引号将带有特殊字符的列名引起来。

请帮助我创建下表/类。当前,它指示语法错误。在同一个项目下,我还有另一个名为Number的类用于不同的应用程序。不确定这是否是一个问题。

from django.db import models


class Errors(models.Model):

    'S/O#' = models.IntegerField(max_length=10)

    Line Number = models.IntegerField()

    'S/O' Type = models.CharField(max_length=5)

    Error Detail = models.CharField(max_length=50)

    Comments = models.TextField()

    'Incident#' = models.CharField(max_length=10)

    Assigned To = models.CharField(max_length=10)

    Issue Status = models.CharField(max_length=15)

    Action = models.CharField(max_length=20)

谢谢

2 个答案:

答案 0 :(得分:1)

由于python语言的限制,您将无法执行此操作。

您也许可以代替默认生成的表和/或字段名。

https://docs.djangoproject.com/en/2.2/ref/models/fields/#django.db.models.Field.db_column https://docs.djangoproject.com/en/2.2/ref/models/options/#table-names

所以代替这个:

'S/O#' = models.IntegerField(max_length=10)  # not a valid field name

尝试这样的事情:

so_number = models.IntegerField(max_length=10, db_column='S/O#) 

答案 1 :(得分:1)

只需使用“ /”->“ _”和“#”->“ N”。

相关问题