ここに私のmodels.pyのコードがあります
#Models.py
....
class Question(models.Model):
text = models.TextField(unique=True)
exam = models.ForeignKey(Exam)
level = models.ForeignKey(Level)
paper = models.ForeignKey(Paper)
topic = models.ForeignKey(Topic)
date_added = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
class Answer(models.Model):
question = models.ForeignKey(Question)
text = models.CharField(max_length=125)
is_correct = models.BooleanField()
explanation = models.TextField(blank=True)
date_added = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
@receiver(post_delete, sender=Question)
def update_redis_deleted(sender, **kwargs):
host = getattr(settings, 'SESSION_REDIS_HOST', 'localhost')
port = getattr(settings, 'SESSION_REDIS_PORT', 6379)
db = getattr(settings, 'SESSION_REDIS_DB', 0)
server = redis.StrictRedis(host, port, db)
pipe = server.pipeline()
question = kwargs['instance']
answer_set_list = question.answer_set.all()
answer = Answer.objects.get(question=question)
私のテストから、質問インスタンスを削除するanswer_set_list
と空のリストになりanswer
、DoesNotExist エラーがスローされます。私のtests.pyでは、question.answer_set.all()
期待どおりにAnswer.objects.get(question=question)
動作します。
誰かがこれを修正し、この奇妙さを説明するのを手伝ってくれることを願っています(少なくとも私の初心者には)