繁体   English   中英

Django 在其他表中看不到 fk

[英]Django doesn't see fk in other table

我有一些模型,然后将它们送给其他人。

模型.py

class ElementMessages(models.Model)
    element = models.ForeignKey(Element, on_delete=models.CASCADE)
    sender = models.ForeignKey(UserAccount, on_delete=models.SET_NULL, null=True)
    text = models.TextField(max_length=512, null=True)
    send_time = models.DateTimeField(auto_now_add=True)
    type = models.CharField(max_length=16, choices=MESSAGE_TYPES, default=SIMPLE)
    type_dialog = models.CharField(max_length=10, choices=DIALOG_TYPE, default=DIALOG_TALK)
    request = models.ForeignKey(ChatRequest, null=True, default=None, on_delete=models.CASCADE)
    post_work = models.ForeignKey(PostWork, null=True, default=None, on_delete=models.CASCADE)
    files = models.BooleanField(default=False)

class Element(models.Model):
    id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
    artist = models.ForeignKey(Artist, on_delete=models.CASCADE, related_name='chat_element', null=True, blank=True)
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name='chat_element', null=True, blank=True)
    element = models.ForeignKey('projects.Element', null=False, on_delete=models.CASCADE, related_name='chat_element')

当我尝试删除Element对象时,它引发了以下问题:

django.db.utils.IntegrityError: insert or update on table "chat_elementmessages" violates foreign key constraint "chat_elementmessages_element_id_672e2ba2_fk_chat_element_id"
DETAIL:  Key (element_id)=(87cdd8d7-47f0-4264-8aa7-ae21a8246fd8) is not present in table "chat_element".

但是当我查看 db 中的表时,该键存在。 如何解决?

事实证明,问题出在 Django pre_deletepost_delete信号上。 他们试图引用一个不存在的对象,我试图删除它。 通过简单检查对象的存在来修复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM