【问题标题】:Django AttributeError: 'str' object has no attribute 'iter'Django AttributeError:“str”对象没有属性“iter”
【发布时间】:2017-06-22 03:58:01
【问题描述】:

在 Django admin 上,当我尝试更新现有数据时出现错误,

AttributeError: 'str' object has no attribute '__iter__'

models.py

class SSPDrive(models.Model):

    drive_year = models.DateField(verbose_name='Drive year', null=True, blank=True, help_text="Enter drive year.")

    class Meta:
        verbose_name = "SSP Drive"
        verbose_name_plural = "SSP Drives"

    def __str__(self):
        return str('SSP'+str(self.drive_year.year)[-2:]+'T'+str(self.drive_year.year+1)[-2:])

class SSPDriveAdmin(admin.ModelAdmin):

    save_as = True

    class Meta:
        model = SSPDrive

admin.site.register(SSPDrive, SSPDriveAdmin)

谁能帮帮我,为什么会出现这个错误……

【问题讨论】:

  • 您应该了解 Python 中的 string formatting 以及 SO 上的代码格式。
  • 这是 django 1.10 中的小错误,如果您遇到此问题,请尝试使用 django 1.11

标签: python django django-admin


【解决方案1】:

ModelAdmin 元类无效。 ModelAdmin 不使用 Meta 类。您可以在注册时指定型号。

class SSPDriveAdmin(admin.ModelAdmin):
    pass
admin.site.register(SSPDrive, SSPDriveAdmin)

【讨论】:

    【解决方案2】:

    这是 django 1.10 中的小错误,如果您遇到此问题,请尝试使用 django 1.11

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-01
      • 2021-11-12
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      • 2021-07-05
      • 2021-04-02
      • 1970-01-01
      相关资源
      最近更新 更多