下午好,
我正在try 编写一个DRF端点来返回下一个未使用的提示.
我有两个型号:
class GameActivity(models.Model):
activity_datetime = models.DateTimeField(default=timezone.now)
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='activity_user')
activity_type = models.ForeignKey(GameActivityType, on_delete=models.CASCADE, null=True, blank=True,related_name='game_activity_type')
activity_hint = models.ForeignKey(Hint, on_delete=models.CASCADE, null=True, blank=True)
和
class Hint(models.Model):
hint_title = models.CharField(max_length=50)
hint_detail = models.CharField(max_length=300)
hint_level = models.IntegerField()
chapter = models.ForeignKey(Chapter, on_delete=models.CASCADE, null=True, blank=True, related_name="chapter_hint")
pts_cost = models.IntegerField()
我try 做的是为传入的章节ID返回不在GameActivity模型中的下一个提示.
伪码 返回提示WHERE(count(GameActivity WHERE ACTIVITY_HINT=hint and Hint.Chapter.ID)=0)ORDER BY HINT_LEVEL ASC LIMIT 1
我想不出如何将两个查询链接在一起,第一个查询输入到第二个查询.
Queryset = SELECT * from Hint WHERE chapter.id = CHAPTER_ID
将查询集传递给GameActivity,并返回没有GameActivity条目的hint_Level最低的一个提示.
谢谢你的帮助,我觉得我没有正确地思考这个问题.
BCBB