django остальные рамки, Неверный json список - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь добавить теги к своим сообщениям. Это работает нормально, но всякий раз, когда я делаю сериализатор класса (для возврата JSON данных), возникает ошибка, показанная ниже:

 {
    "tags": [
        "Invalid json list. A tag list submitted in string form must be valid json."
    ]
}

Я использую пакеты django-taggit и django-taggit-serializer.

мое установленное приложение в settings.py

INSTALLED_APPS = [
   'rest_framework',
   'rest_framework_gis',
   'taggit',
   'taggit_serializer'
]

my models.py

class Post(models.Model):

   title= models.CharField(max_length=50)
   description = models.TextField()
   location = models.PointField(srid=4326)
   tags = TaggableManager()

my serializers.py

class PostCreateSerializer(TaggitSerializer,GeoFeatureModelSerializer):
    tags = TagListSerializerField()
    class Meta:
        model = Post
        geo_field = 'location' 
        fields = [
            'title','description','tags'
         ]

my views.py

class PostCreateApiView(CreateAPIView):
    queryset = Post.objects.all()
    serializer_class = PostCreateSerializer
    message = 'you have not account'
    permission_classes = [IsAuthenticated]

    def perform_create(self,serializer):
       serializer.save(user=self.request.user)

Я видел несколько похожих вопросов, но они не работали для моего случая. Я использую Geo django с базой данных PostGIS. Данные, которые я пытаюсь добавить:

{
   "title": "my title",
   "description": "nice desc",
   "city": "city name",
   "tags": tag1 tag2 tag3,
   "location": POINT(-123.0208 44.0464)
 }

1 Ответ

0 голосов
/ 23 апреля 2020

Полагаю, проблема в формате отправляемых данных. Попробуйте отправить теги в виде списка, а не строки. Пример: { "title": "my title", "description": "nice desc", "city": "city name", "tags": ["tag1", "tag2", "tag3"], "location": POINT(-123.0208 44.0464) }

проверьте это для получения дополнительной информации о возбужденном исключении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...