python - 无法在 Django Model 中调用 save() ?获取: AttributeError: 'unicode' object has no attribute 'save'

标签 python django models

感谢您花时间帮助我。

我对 django 和 python 还很陌生。

所以我有一个模型,我试图从另一个模型中提取一些数据来构建某种登陆页面。我试图让它在管理中完全可定制,但我发现为了我想做的事情,我将不得不涉及 AJAX。我已经放弃了这一点,并主要删除了管理自定义,因为这实际上只是针对我自己的个人网站。

总结一下总体目标:

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

  • 我的“登陆”页面上的每个画廊都将是每个画廊的一张图片 画廊、标题和画廊网址。

这是我的模型的一部分: 类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' object has no attribute 'save'

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

我真的离基地很远吗?我非常感谢您的帮助。

最佳答案

问题出在:

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

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

顺便说一句,将逻辑代码直接放入类定义中可能不是最好的主意。您可以将逻辑纳入类方法中,这会更合适。当您在其定义中调用类方法时,您仍然定义了类属性。

关于python - 无法在 Django Model 中调用 save() ?获取: AttributeError: 'unicode' object has no attribute 'save' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14426854/

相关文章:

python - scikits ARI 实现中是否存在错误,或者我对算法的理解是否有缺陷?

python - 如何用西里尔语解码类似 JSON 的字符串?

django - 有没有办法阻止 django-pipeline 每次编译react.js代码时创建新的jsx文件?

python - 使用 Django 将文件异步上传到 Amazon S3

validation - 将 zend 过滤器和验证链附加到模型/学说实体

python - Django:引用已在另一个模型中定义的多域字段

Python:unicode .encode,可以对不可编码的字符调用函数吗?

python - 阴谋冲刺 : How to display three graphs next to each other inside a tab

python - Django Tastypie 添加 Content-Length header

codeigniter - 编辑助手中设置的变量时,间接修改Codeigniter模型中的重载属性