【发布时间】:2021-02-09 03:10:56
【问题描述】:
我必须使用应用程序(DMS 和 ObjPDW)。第一个是用于管理一些文件。在这我有一个模型 DMS_Dokument,其中包括一个 FileField 等等。最近我为后一个应用程序(ObjPDW)添加了一个新模型,并在 Dokument_DMS 中添加了一个外键:
class Zahlungsstrom(models.Model):
zahlung_bezeichnung = models.CharField(max_length=550, blank=False, null=False, verbose_name="Bezeichnung")
zahlung_betrag = models.DecimalField(max_digits=7, decimal_places=2, default=None, blank=True, null=True)
zahlung_dok_fk = models.ForeignKey(dmsdok.DMS_Dokument, on_delete=models.SET_DEFAULT, default=None, null=True, blank=True, verbose_name="Zahlungsdokument")
现在我想删除一个 DMS_Dokument 对象(使用 DeleteView CBV),但它给了我一个“prorammingerror”:“(1146,“表 'DB_DMS.ObjPDW_zahlungsstrom' 不存在”)”
我不知道问题是什么。 :(
编辑:只是为了明确这一点。这两个应用程序都有自己的数据库。我知道 Django 不建议在两个数据库之间关联模型,但由于我不是经验丰富的程序员,我不知道为什么我可以使关系工作,但删除是个问题。
此外,我想在此处包含更多代码,这是关于 DMS_Dokument 模型的。它还有一个删除定义。
class DMS_Dokument(models.Model):
dms_dok_titel = models.CharField(max_length=255, blank=True)
dms_dok_beschreibung = models.CharField(max_length=3000, blank=True, null=True)
dms_dok_datei = models.FileField(max_length=255,upload_to='DMS/')
dms_dok_gehoert_zu_app = models.CharField(max_length=255, choices=app_choices, blank=False, null=False)
def save(self, *args, **kwargs):
preserve_ext = extension(self.dms_dok_datei.name)
neuer_dateiname = self.dms_dok_gehoert_zu_app + '_' + self.dms_dok_titel + '_' + self.dms_dok_hochgeladen_am.strftime("%d.%m.%Y")
self.dms_dok_datei.name = neuer_dateiname + preserve_ext
super(DMS_Dokument, self).save(*args, **kwargs)
def delete(self):
self.indexes.all().delete()
super(DMS_Dokument, self).delete()
也许这会有所帮助。
【问题讨论】:
-
看来我不是唯一一个有这个问题的人。这篇非常古老的帖子:Django 1.4 Multiple Databases Foreignkey relationship (1146, "Table 'other.orders_iorder' doesn't exist") 似乎几乎相同。可悲的是,当时没有解决方案。
-
用户“Scratte”非常友善,并告诉我这应该是一条评论。我想以正确的方式做到这一点,因此移动了这个链接。他还写道:“事实上,因为上面贴有一个答案,所以这两个帖子应该作为重复链接。我认为你可以将自己的帖子标记为重复关闭。”但我不确定我是否理解正确,因为在另一篇文章中除了直接 SQL 语句之外没有找到解决方案,但当时的作者和我都没有在寻找。
标签: python django database mariadb