假設,這是一個模型作爲外鍵的ContentType
:Django的 - 查詢和刪除GenericForeignKey
class Photo(models.Model):
user = models.ForeignKey(User)
description = models.TextField()
image = models.ImageField(upload_to=get_upload_file_name)
pub_date = models.DateTimeField(auto_now=True, auto_now_add=False)
這是ContentType
模型:
class Entry(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
pub_date = models.DateTimeField()
content_object = generic.GenericForeignKey('content_type','object_id')
每當一個新的照片或狀態創建了新的Entry
。現在,我想要的是,每當我刪除一個Photo
/Status
的實例時,我想從Entry
中刪除與該照片/狀態相關的對象?我怎麼做?
我嘗試這樣做:
def delete_entry(sender, **kwargs):
instance = kwargs['instance']
try:
si = Entry.objects.get(object_id=instance.id)
si.delete()
except Entry.DoesNotExist:
si = None
有時它的工作。但再次有時我得到一個錯誤:
MultipleObjectsReturned
get() returned more than one Entry -- it returned 2!
所以,我想,那是不是這樣做的方式。請幫我解決這個問題。謝謝!
好!這工作!謝謝。 – Kakar