Я получаю эту ошибку:
Unsupported lookup 'text' for JSONField or join on the field not permitted, perhaps you meant exact or iexact?
Я не могу понять, как решить эту проблему.
Я получаю эту ошибку, когда пытаюсь выполнить запрос к полю с вложенными данными json.
Я использую Mongodb и движок Djongo для подключения и фреймворка id Django rest framework.
Пожалуйста, помогите мне решить эту проблему.
Просмотр:
@api_view(['GET'])
def gettweets(request):
if request.method == 'GET':
tweets = TwitterMaster.objects.all()
tt = request.query_params.get('tt')
if tt:
condition = Q(data__text__contains=tt)
#condition = Q(tweet_text__contains=tt)&Q(tweet_favorite_count=13)
tweets = tweets.filter(condition)
# srz = serializers.serialize('json',tweets)
#print(tweets.query)
serializer = TwitterdashappSerializer(tweets, many=True)
totCount = 0
if serializer.data is not None:
totCount = len(serializer.data)
respData = {"totCount":totCount}
return Response({"message": "success", "data":respData},200)
return Response({"message": "OOPS","error_code":"gettweets_404"},404)
Модель:
from djongo import models
from jsonfield import JSONField
class TwitterMaster(models.Model):
tweet_id = models.BigIntegerField(primary_key=True)
data = JSONField(default='', blank=True)
location = models.CharField(max_length=250, blank=True, null=True)
latitude = models.CharField(max_length=250, blank=True, null=True)
longitude = models.CharField(max_length=250, blank=True, null=True)
Сериализатор:
class TwitterdashappSerializer(serializers.Serializer):
tweet_id = serializers.CharField()
data = serializers.JSONField()
location = serializers.CharField()
latitude = serializers.CharField()
longitude = serializers.CharField()
def create(self, validated_data):
instance = TwitterMaster.objects.create(**validated_data)
return instance