我不能调用导演下的电影。我想做一个页面,你点击导演的名字,它会显示由导演导演的电影列表。下面显示的是模型,序列化器和视图的代码。
models.py
class Director(models.Model):
_id = models.AutoField(primary_key=True)
firstname = models.CharField(max_length=100, null=True, blank=True)
lastname = models.CharField(max_length=100, null=True, blank=True)
def __str__(self):
return "%s %s" % (self.firstname, self.lastname)
class Product(models.Model):
_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, null=True, blank=True)
image = models.ImageField(upload_to=upload_image_path, null=True, blank=True)
description = models.TextField(null=True, blank=True)
director = models.ForeignKey(Director, on_delete=models.CASCADE)
def __str__(self):
return self.name
serializers.py
class ProductSerializer(serializers.ModelSerializer):
director = serializers.StringRelatedField()
class Meta:
model = Product
fields = '__all__'
class DirectorSerializer(serializers.ModelSerializer):
class Meta:
model = Director
fields = '__all__'
views.py
@api_view(['GET'])
def getProducts(request):
products = Product.objects.all()
serializer = ProductSerializer(products, many=True)
return Response(serializer.data)
@api_view(['GET'])
def getProduct(request, pk):
product = Product.objects.get(_id=pk)
serializer = ProductSerializer(product, many=False)
return Response(serializer.data)
@api_view(['GET'])
def getDirector(request):
director = Director.objects.all()
serializer = DirectorSerializer(director, many=True)
return Response(serializer.data)
我已经尝试了上面所示的。
1条答案
按热度按时间e4eetjau1#
注意:你不需要在你的模型中添加“_id”字段,因为它是自动添加的。