【发布时间】:2021-05-29 13:39:31
【问题描述】:
运行命令 python manage.py inspectdb 后,出现以下错误
TypeError: 'class Meta' 的属性无效:ifsc,bank,branch,address,city,district,state
我的模型如下
from django.db import models
class Banks(models.Model):
class Meta:
db_table = 'banks'
name = models.CharField(max_length=49, blank=True, null=True)
id = models.BigIntegerField(primary_key=True)
class Meta:
managed = False
db_table = 'branches'
ifsc = models.CharField(primary_key=True, max_length=11)
bank = models.ForeignKey('Banks', models.DO_NOTHING, blank=True, null=True)
branch = models.CharField(max_length=250, blank=True, null=True)
address= models.CharField(max_length=250, blank=True, null=True)
city = models.CharField(max_length=50, blank=True, null=True)
district = models.CharField(max_length=50, blank=True, null=True)
state = models.CharField(max_length=26, blank=True, null=True)
【问题讨论】:
-
模型字段应该在模型类中,而不是
Meta类。Meta的两个定义也不起作用...这真的是inspectdb的输出,还是您将其编辑为这种方式? -
你不应该在
Meta类中指定数据库字段,只有元选项。 -
Inspectdb 制作了这个?这听起来很奇怪,因为它看起来完全错误地格式化/缩进。你修改了inspectdb的输出吗?您是否将其输出重定向到 models.py 文件(即
python manage.py inspectdb > models.py)? -
两个元是inspectdb的输出。我把事情弄得乱七八糟,想弄清楚我是否能摆脱错误。感谢您提供的解决方案有效。 @AbdulAzizBarkat
-
@jay
inspectdb不应该给出这样的输出(它应该给你2个模型类和他们自己的Meta)......无论如何,如果你在谈论下面给出的答案由威廉,不是我,我只是对其进行了一些编辑,以删除从问题中错误复制的一些文本,如果它解决了您的问题,请接受答案。
标签: python-3.x django postgresql django-models pgadmin