Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django在为其子模型调用_set.all()时引发AttributeError_Python_Django_Django Models - Fatal编程技术网

Python django在为其子模型调用_set.all()时引发AttributeError

Python django在为其子模型调用_set.all()时引发AttributeError,python,django,django-models,Python,Django,Django Models,我目前正在模仿django官方民意调查的例子来开发我自己的模型,如下所示: from django.db import models class Instance(models.Model): inst_host = models.CharField(max_length=64) def __str__(self): return self.inst_host class RDMInfo(models.Model): instance = models

我目前正在模仿django官方民意调查的例子来开发我自己的模型,如下所示:

from django.db import models

class Instance(models.Model):
    inst_host = models.CharField(max_length=64)
    def __str__(self):
        return self.inst_host

class RDMInfo(models.Model):
    instance = models.ForeignKey(Instance)
    filesystem = models.CharField(max_length=16)
    osdevice = models.CharField(max_length=16)
    lun_name = models.CharField(max_length=128)
    lun_id = models.IntegerField()
    wwn = models.CharField(max_length=128, unique=True)
    lun_size = models.CharField(max_length=8)
    def __str__(self):
        return '%s %s %s %s %s %s' % (self.filesystem, self.osdevice, self.lun_name, self.lun_id, self.wwn, self.lun_size)
当我执行以下操作时,出现了错误:

>>> from rdm.models import Instance, RDMInfo
>>> q = Instance.objects.get(pk=1)
>>> q
<Instance: alps_mtkalpsdbp1>
>>> q.rdminfo_set.all()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/db/models/query.py", line 141, in __repr__
    return repr(data)
  File "/usr/local/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/db/models/base.py", line 496, in __repr__
    u = six.text_type(self)
  File "/home/oracle/jrlin/smc/rdm/models.py", line 17, in __str__
    return '%s %s %s %s %s %s' % (self.filesystem, self.osdevice, self.lun_name, self.lun_id, self.wwn, self.lun_size)
AttributeError: 'RDMInfo' object has no attribute 'inst_host'
已解决


感谢大家的评论,这是我的错误,最初我输入错误,RDMInfo模型的return命令中出现了一个不需要的属性“self.inst_host”,删除它后,我应该再次执行migrate并重新打开python shell。在完成迁移并重新打开外壳后,它可以正常工作,谢谢

没有理由您发布的代码会引发此错误。您确定Python/Django shell中没有导入以前版本的代码吗?如果关闭shell并重新启动它,错误是否会持续?我只是执行了代码进行检查,正如@brunodesshuilliers所说的,它是有效的。我猜你在某处有其他混合的旧模型或数据!我已尝试删除整个项目并重新创建,然后再次执行,但相同的错误仍然存在。您发布的代码没有理由引发此错误。您确定Python/Django shell中没有导入以前版本的代码吗?如果关闭shell并重新启动它,错误是否会持续?我只是执行了代码进行检查,正如@brunodesshuilliers所说的,它是有效的。我猜你在某处有其他混合的旧模型或数据!我试图删除整个项目并重新创建,然后再次执行,但相同的错误仍然存在。
from django.contrib import admin

from .models import Instance, RDMInfo

class RDMInline(admin.TabularInline):
    model = RDMInfo
    extra = 1

class RDMAdmin(admin.ModelAdmin):
    fields = ['inst_host']
    inlines = [RDMInline]

admin.site.register(Instance, RDMAdmin)