【问题标题】:how to get correct attribute for class Meta?如何获得类 Meta 的正确属性?
【发布时间】: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


【解决方案1】:

看起来你的缩进方式错误。字段是在类级别指定的,所以:

from django.db import models

class Banks(models.Model):
    #↓ Banks class attributes
    id = models.BigIntegerField(primary_key=True)
    # ↓ Banks class attributes
    name = models.CharField(max_length=49, blank=True, null=True)
    
    class Meta:
        db_table = 'banks'

至于第二个元,这应该属于另一个模型类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 2020-11-28
    • 2017-10-01
    相关资源
    最近更新 更多