У меня есть следующая модель -
class Review(BaseModel,EntityBaseClass):
review = models.TextField(null=True,blank=True)
reviewer = models.ForeignKey(User, related_name='reviewer', null=True, on_delete=models.SET_NULL)
anonymous_review = models.BooleanField(default=False)
Что я хочу, если я получаю запрос с анонимным = True, я не должен захватывать детали пользователя, а только обзор.
Мне было интересно, можно ли это сделать с помощью условных выражений Django.Я попытался -
user = request.user
Review.objects.create(review='some review', reviewer=Case(When(Q(params['anonymous_review']),then=user)),
anonymous_review = Case(When(Q(params['anonymous_review']),then=Value('True')), default=Value('False')))
Однако пользовательский объект преобразуется в строку, и, следовательно, я получаю сообщение об ошибке, утверждая, что рецензент должен быть экземпляром пользовательского объекта.Есть ли способ обойти это?Разве условное выражение Django не должно использоваться таким образом?