【发布时间】:2020-11-08 15:47:03
【问题描述】:
我正在将 Django 转换为 Django REST API。现在我在 APIView 中遇到 self.object 错误。如何在 APIView 中使用 self.object 或替代选项?
这是我的 DetailView...
class ChapterDetail(DetailView):
model= Chapter
context_object_name = 'chapter'
def get_context_data(self, **kwargs):
context = super(ChapterDetail, self).get_context_data(**kwargs)
user = self.request.user
user_practice_game = UserPracticeGame.objects.filter(user=user).filter(practice_game__chapter=self.object).first()
context['user_practice_game'] = user_practice_game
return context
这是我的 APIView...
class ChapterDetailAPIView(APIView): # need review
def get(self, request, *args, **kwargs):
context = {}
qs_user_practice_game = UserPracticeGame.objects.filter(user=self.request.user).filter(practice_game__chapter=
upg_serializer = UserPracticeGame(qs_user_practice_game, many=True)
context['user_practice_game'] = upg_serializer.data
return Response(context, status=200)
在 APIView 中,我无法在查询中使用 practice_game__chapter=self.object!
这是我的模特...
class UserPracticeGame(DateMixin, models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='User', related_name='user_practice_game')
practice_game = models.ForeignKey(PracticeGame, on_delete=models.CASCADE, verbose_name='Practice Game', related_name='user_practice_game')
total_answered = models.IntegerField(verbose_name='Total Answered', default=0, blank=True, null=True)
【问题讨论】:
标签: django api django-models django-rest-framework django-views