1

In my models.py i have a field called "added_by" and it has a foreignkey relationship. Now i want to post the data in the ApiView through post method and i dont have idea how can i post it. can anyone help me with this.And the added by have a foreignkey relationship with User

models.py

'''from django.db import models


# Create your models here.
class RatingRates(models.Model):
    Rating = models.IntegerField()

class UserMovie(models.Model):
    Movie = models.CharField(max_length=64)
    Title = models.CharField(max_length=128)
    #rates = models.OneToOneField(RatingRates, on_delete=models.CASCADE, null=True)

    def __str__(self):
        return self.Movie

class JoinModel(models.Model):
    Movie=models.CharField(max_length=64)
    Title=models.CharField(max_length=128)
    Rating=models.IntegerField()
'''

from django.db import models
from django.contrib.auth.models import User
from django.core.validators import MinValueValidator, MaxValueValidator


class Movie(models.Model):
    title = models.CharField(max_length=128)
    director = models.CharField(max_length=128)
    added_by = models.ForeignKey(User, related_name="movie", on_delete=models.CASCADE, null=True)
    added_at = models.DateTimeField(auto_now_add=True)

    # rating=models.IntegerField()
    class Meta:
        db_table = "Movie"

class Rating(models.Model):
    movie = models.ForeignKey(Movie, on_delete=models.CASCADE)
    rating = models.IntegerField(validators=[MinValueValidator(0),MaxValueValidator(5)])
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_rating')

    class Meta:
        db_table = "Rating"

serializer.py

class MovieSerializer(serializers.ModelSerializer):
    class Meta:
        model = Movie
        fields = ['id', 'title', 'director']


class RatingSerializer(serializers.ModelSerializer):

    class Meta:
        model = Rating
        fields = ['id', 'movie','rating']

views.py

class ListUsers(APIView):


    permission_classes = [IsAuthenticated]

    def get(self, request, format=None):
        movie=Movie.objects.all()
        serializer=MovieSerializer(movie,many=True)
        return Response(serializer.data)

    def post(self, request, *args, **kwargs):
        movie_data = request.data

        new_movie = Movie.objects.create(title=movie_data["title"], director=movie_data[
            "director"])


        new_movie.save()

        serializer = MovieSerializer(new_movie)

        return Response(serializer.data
  • also, if you want to get saved the logged-in user, ref this https://stackoverflow.com/questions/35518273/how-to-set-current-user-to-user-field-in-django-rest-framework – JPG Jan 08 '21 at 12:45
  • i dont think this was the solution of my question – Ritesh Sinha Jan 08 '21 at 12:48

0 Answers0