私のdjangoアプリケーションには、.AにBlogEntry
属するaがあります。Category
BlogEntry
Category
class BlogEntry(models.Model):
creationdate=models.DateField(default=date.today)
description=models.TextField()
author=models.ForeignKey(User,null=True)
categories=models.ManyToManyField(Category)
class Category(models.Model):
name=models.CharField(unique=True,max_length=50)
description=models.TextField(blank=True)
ユーザーはを編集することができ、BlogEntry
そうすることで、それがあったものを削除するCategory
ことができます。
blogEntry1
以前に属していたと仮定しjava,scala
ます。ユーザーが削除するように編集した場合scala
、エントリには1つのカテゴリのみが含まれます。java
私のlist_viewでは、以下のようにキャッシュを使用しています
from django.core.cache import cache
def list_entries_on_day(request,year,month,day):
...
key = 'entries_day'+'-'+year+'-'+month+'-'+day
if key not in cache:
entries = BlogEntry.objects.filter(...args..)
cache.set(key,entries)
entries_on_day =cache.get(key)
...
今日のために2つのエントリを作成し、これらがキャッシュに入れられたとします。これらBlogEnty
の1つを編集して、カテゴリを削除すると、次のようになります。
blogEntry1 has categories :java,scala
blogEntry2 has categories :dotnet,vbasic
最初に、今日のエントリのクエリを作成し、結果をキャッシュに入れます
キャッシュは[blogEntry1,blogEntry2]
キーに対して持っています'entries_day-2012-11-11'
今、私はそれが今カテゴリーとしてblogEntry1
持っているように編集しますjava
、保存されたエントリをキャッシュから削除する必要がありますか?(キャッシュにはBlogEntry
変更前のオブジェクトが含まれているため)