Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 显示已联系租金的买家列表_Python_Django_Django Rest Framework - Fatal编程技术网

Python 显示已联系租金的买家列表

Python 显示已联系租金的买家列表,python,django,django-rest-framework,Python,Django,Django Rest Framework,许多用户都可以联系租金来购买。我想显示已联系特定租金的所有用户的列表。我应该创建一个UserAPIView并在那里显示,还是详细显示用户列表?哪一个是最好的设计 这是我的模型和序列化程序 class Rental(models.Model): user = models.ForeignKey(User) name = models.CharField(max_length=300, blank=False, null=False) phone_number = model

许多用户都可以联系租金来购买。我想显示已联系特定租金的所有用户的列表。我应该创建一个UserAPIView并在那里显示,还是详细显示用户列表?哪一个是最好的设计

这是我的模型和序列化程序

class Rental(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=300, blank=False, null=False)
    phone_number = models.PositiveIntegerField(null=False, blank=False)

class Contact(models.Model):
    buyer = models.ForeignKey(User)
    rental = models.ForeignKey(Rental, related_name="rent")
    phone_number = models.PositiveIntegerField(null=False, blank=False)
    buyer_choice = models.CharField(choices=BUYER_CHOICES, max_length=1, null=False, blank=False)


class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('username', 'email',)

class RentalSerializer(serializers.ModelSerializer):
    user = serializers.ReadOnlyField(source='user.username')
    galleries = GallerySerializer(many=True)
    class Meta:
        model = Rental
        fields = ('__all__')

class UserAPI(APIView):
    def get(self, request, format=None):
        """
        List all the users
        """
        reply = {}
        try:
            users = User.objects.all()
            reply['data'] = UserSerializer(users, many=True).data
        except:
            reply['data'] = []
        return Response(reply, status.HTTP_200_OK)


class RentAPIView(APIView):
    def get(self, request, token=None, format=None):
        """
         Returns a list of rents (or just rent if token is given)
        """
        reply = {}
        try:
            rents = Rental.objects.filter(user=request.user)
            buyer_id = self.request.query_params.get('buyer_id', None)
            if buyer_id:
                print ('buyer_id', buyer_id)
                rents = rents.filter(rent__buyer__id=buyer_id)
            if token:
                rent = rents.get(id=token)
                reply['data'] = RentalSerializer(rent).data
            else:
                reply['data'] = RentalSerializer(rents, many=True).data
        except Rental.DoesNotExist:
            return error.RequestedResourceNotFound().as_response()
        except:
            return error.UnknownError().as_response()
        else:
            return Response(reply, status.HTTP_200_OK)

这是一个关于设计偏好的问题,并不是StackOverflow能够回答的问题。我想我会得到这个指南,因为我自己也尝试过。对不起,如果我发布了错误的问题。对不起,也许我误解了。您的问题是关于API体系结构还是关于UI布局?无论哪种方式,这都是个人选择的问题,但是关于API体系结构,具有高度规范化的API结构和大型嵌套树都有利弊。如果你搜索的话,你会发现很多关于这个主题的讨论。我说的是API架构。由于两种型号的租赁和联系方式,我对在哪里显示数据感到困惑。我应该使用哪个序列化程序?我可以做到,但我没有足够的信心来判断这是不是正确的方法。