stock_list
사용자가보고있는 현재 개체에서 내 열 내부의 값을 가져 오는 가장 효율적인 방법을 찾으려고합니다 .
BucketDetail
사용자가 선택한 특정 개체를 검색하는 데 사용됩니다. item = self.kwargs.get('pk')
class BucketDetail(generics.RetrieveAPIView):
permission_classes = [IsAuthenticated]
serializer_class = BucketListSerializer
queryset = Bucket.objects.all()
def get_object(self, queryset=queryset, **kwargs):
item = self.kwargs.get('pk')
return get_object_or_404(Bucket, slug=item)
개체 인스턴스 BucketDetail
를 BucketData
보기 에서 보기로 전달한 다음 stock_list
현재 개체 인스턴스에서 열을 가져 오는 방법은 무엇입니까?
class BucketData(APIView):
permission_classes = [IsAuthenticated]
def get(self, request, *args, **kwargs):
stocks = Bucket.objects.get(stock_list)
...
data = response.json()
return Response(data, status=status.HTTP_200_OK)
위는 내가 지금까지 가지고있는 것인데, stocks = Bucket.objects.get(stock_list)
내가 생각한 것처럼 작동하지 않습니다.
models.py
class Bucket(models.Model):
category_options = (
('personal', 'Personal'),
('social', 'Social'),
)
class BucketObjects(models.Manager):
def get_queryset(self):
return super().get_queryset()
...
slug = models.SlugField(unique=True, blank=True)
stock_list = ArrayField(models.CharField(max_length=6,null=True),size=30,null=True)
...
objects = models.Manager()
bucketobjects = BucketObjects()
class Meta:
ordering = ('-created',)
def total_stocks_calc(self):
self.stock_count = Bucket.objects.aggregate(Sum('stock_list', distinct=True))
self.save()
뷰 stock_list
내에서 데이터 를 검색하려면 모델 pk 또는 고유 한 슬러그를 사용해야 합니다 BucketData
. 또한 데이터에 직렬 변환기를 사용해야합니다. slug 또는 pk를 urls 파일에서보기로 전달하십시오. 다음과 같이 시도하십시오 (코드는 테스트되지 않았으며 개선 될 수 있음).
직렬 변환기 :
class StockListSerializer(ModelSerializer):
stock_list = serializers.ListField(child=serializers.CharField())
class Meta:
model = Bucket
fields = ("stock_list",)
전망:
class BucketData(APIView):
permission_classes = [IsAuthenticated]
def get(self, request, *args, **kwargs):
slug = kwargs.get("slug")
bucket_object = get_object_or_404(Bucket, slug=slug)
serialzer = StockListSerializer(bucket_object.stock_list)
return Response(serialzer.data, status=status.HTTP_200_OK)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다