Отображение поля пользовательской модели в методе Post

Я столкнулся с некоторыми проблемами, касающимися Django-Rest-Framework, метода post.

Есть две вещи, которых я хочу достичь:

  1. Adding fields in the view of the Post method. --> Here instead of sending the data in Json format, I want to replace the filed names with the Custom model's fields
  2. And when using '@renderer_classes([BrowsableAPIRenderer])' decorator in a view, the view page shows '[No renderers were found]'.
  3. When sending the data through post method, it says ==> Object of type Account is not JSON serializable

Вот фрагменты моего кода и изображение для справки...

serializers.py

class CreateTodoSerailizer(serializers.ModelSerializer):
class Meta:
    model = Todos
    fields = ('title', 'user', 'desc', 'todo_date', 'is_completed',)

def save(self):
    todo = Todos(
        title = self.validated_data['title'],
        user = self.validated_data['user'],
        desc = self.validated_data['desc'],
        todo_date = self.validated_data['todo_date'],
        is_completed = self.validated_data['is_completed'],
    )
    todo .save()
    return todo

models.py

class Todos(models.Model):
    user = models.ForeignKey(Account, on_delete=models.CASCADE)
    title = models.CharField(max_length=30)
    slug = models.SlugField(max_length=50, blank=True)
    desc = models.TextField(blank=True)
    date_created = models.DateTimeField(auto_now_add=True)
    todo_date = models.DateField(default=date.today)
    is_completed = models.BooleanField(default=False)

    class Meta:
        verbose_name = _("Todos")
        verbose_name_plural = _("Todos")
        ordering = ['-date_created']

    def __str__(self):
        return self.title


    def save(self, *args, **kwargs):
        self.slug = slugify(self.title)
        return super(Todos, self).save(*args, **kwargs)

views.py

@api_view(['POST'])
def createTodo(request, format=None):

    if request.method == 'POST':
        serializer = CreateTodoSerailizer(data=request.data)
        data = {}
        if serializer.is_valid():
            todo = serializer.save()
            data['response'] = 'Successfully added'
            data['title'] =  todo.title
            data['username'] = todo.user
        else:
            data = serializer.errors
        return Response(data)
Вернуться на верх