I know this is a noob question about DRF. I use latest version of Django
 and DRF. In my Django , I create slugs in a method using pre_save signals.

    def create_slug(instance, new_slug=None):
      slug = slugify(instance.title)
      if new_slug is not None:
        slug = new_slug
      qs = Article.objects.filter(slug=slug).order_by("-id")
      exists = qs.exists()
      if exists:
        new_slug = "%s-%s" %(slug, qs.first().id)
        return create_slug(instance, new_slug = new_slug)
      return slug


@receiver(pre_save, sender = Article)def pre_save_article_receiver(sender, 
instance, raw, using, **kwargs):
    if not instance.slug:
      instance.slug = create_slug(instance)

pre_save.connect(pre_save_article_receiver, sender=Article)

Then I can manage to write my views and serializers using DRF

from rest_framework import serializersfrom yogavidya.apps.articles.models 
import Article
class ArticleSerializer(serializers.ModelSerializer):

  class Meta:
    model = Article
    fields = [
      "title",
      "user",
      "content",
      "excerpt",
    ]

--views.py--

app_name = 'articles'class ArticleListView(generics.ListCreateAPIView):
                  lookup_field = 'pk'
                  serializer_class = ArticleSerializer
                  queryset = Article.objects.all()

                  def list(self, request):
                        # Note the use of `get_queryset()` instead of 
`self.queryset`
                        queryset = self.get_queryset()
                        serializer = ArticleSerializer(queryset, many=True)
                        print(serializer.data)
                        return Response(serializer.data)
                  def get_queryset(self):
                    return Article.objects.all()

                  def get_object(self):
                    pk = self.kwargs.get("pk")
                    return Article.objects.get(pk=pk)

                  def put(self, request, *args, **kwargs):
                        return self.update(request, *args, **kwargs)
    class ArticleViewSet(viewsets.ModelViewSet):
                """
                API endpoint that allows users to be viewed or edited.
                """
                queryset = Article.objects.all().order_by('-title')
                serializer_class = ArticleSerializer

When I post my form I get name 'create_slug' is not defined. Where is best 
place to override my save method and updates? can you help me ?

Thanks

-- 
You received this message because you are subscribed to the Google Groups 
"Django REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to