在Django模型中不能调用save()?获取:AttributeError:“unicode”对象没有属性“save”

2024-10-03 02:37:22 发布

您现在位置:Python中文网/ 问答频道 /正文

谢谢你抽出时间来帮我。在

我对django和python还很陌生。在

所以我有一个模型,我试图从另一个模型中提取一些数据来构建一个登录页面。我试图让它在管理中完全可定制,但我发现为了我想要做的事情,我不得不使用AJAX。我已经取消了这一点,并采取了主要删除管理员定制,因为这真的只是我自己的个人网站。在

因此,概括一下总体目标:

  • 我想从许多“图库”页面中提取第一幅图像

  • 在我的“登陆”页面上的每个图库将是一个单独的图像 库、标题和指向库的url。

这是我模型的一部分: 类AggeragateImages(可订购):

    aggeragate = models.ForeignKey("AggeragatePage", related_name="thumbnails")
    gallery_titles = models.CharField(editable=False, max_length=1000)
    gallery_slug = models.CharField(editable=False, max_length=1000)

    def getGallery():
        """
        Returns PK of all Gallery content type pages
        """
        galleryPK = []

        for e in Page.objects.filter(content_model='gallery'):
            galleryPK.append(e.pk)

        return galleryPK

    galleryPK = getGallery()

    for e in galleryPK:
        gallery_titles = Gallery.objects.get(pk=e).titles
        gallery_titles.save()
        gallery_slug = Gallery.objects.get(pk=e).slug
        gallery_slug.save()

    def __unicode__(self):
        return self.name

但是为什么我运行syncdb我得到:AttributeError:“unicode”对象没有属性“save”

我还尝试通过交互式shell来执行此操作,在调用“save()”时也会遇到相同的错误

我真的离基地很远吗?我真的很感谢你的帮助。在


Tags: name模型图像objectsmodelssave页面gallery
1条回答
网友
1楼 · 发布于 2024-10-03 02:37:22

问题在于:

gallery_titles = Gallery.objects.get(pk=e).titles
gallery_titles.save()

当您执行Gallery.objects.get(pk=e)操作时,它会返回一个模型实例,但是随后您将检索它的titles属性,我猜是一个字符串(unicode)。所以在这一点上,gallery_titles是一个陷阱,您试图在下一行中保存它,但是unicode类没有导致错误的方法save。在

顺便说一句,把逻辑代码直接放在类定义中可能不是最好的主意。您可以将您的逻辑分解到类方法中,这将更加合适。当您在类方法的定义内调用它时,您仍然在定义一个类属性。在

相关问题 更多 >