【问题标题】:Django DatabaseError when deleting any record from admin?从管理员删除任何记录时出现Django DatabaseError?
【发布时间】:2012-07-07 01:15:05
【问题描述】:

我在这里提出了一个关于 manytomanyfield 的问题,我解决了,但现在提出了一个新问题,

DatabaseError at /admin/myapp/photo/8/delete/

relation "woek_gallery_photos" does not exist
LINE 1: DELETE FROM "woek_gallery_photos" WHERE "photo_id" IN ...

我知道为什么会出现这个问题,但我不知道该怎么做。我有一个与 Group 模型和 Gallery 模型有关的照片模型。当我从图库中添加图像时效果很好,但删除它时,会引发 Group 没有任何关系的问题...

class Gallery(models.Model):
    ....
    photos = models.ManyToManyField('Photo', related_name='galleries', 
             verbose_name=_('Gallery'),
                                    null=True, blank=True)

class Group(models.Model):
    ...
    photos = models.ManyToManyField('Photo', related_name='galleries', 
             verbose_name=_('Group'),
                                    null=True, blank=True, 
                                    through='through=GroupPhotos')

class Photo(models.Model):
    image = models.ImageField(verbose_name = "Browse", 
                              upload_to=myPath)

感谢您的所有帮助。

【问题讨论】:

    标签: python django django-models django-admin


    【解决方案1】:

    relation "woek_gallery_photos" does not exist 表示表“woek_gallery_photos”不存在。创建照片模型后是否忘记运行syncdb?

    【讨论】:

      【解决方案2】:

      该错误意味着PhotoGallery 之间关系的连接表丢失或从未创建过。如果您还没有这样做,请运行:

      python manage.py syncdb
      

      如果仍然不起作用,请手动创建表。你可以运行:

      python manage.py sqlall yourapp
      

      获取要使用的正确 SQL。查找它创建woek_gallery_photos 的行并复制该位。然后运行:

      python manage.py dbshell
      

      并在提示符处粘贴。点击回车,你应该很高兴。

      【讨论】:

      • 谢谢你。 ./manage.py syncdb 没有添加外键关系,所以我添加了手动更改表......所以它可以工作。
      最近更新 更多