Аргумент источника Django Serializer не работает

Я пытаюсь получить все счета и их данные, связанные с клиентом (например, «код клиента», «электронная почта» и т. д.).

Однако source='user.customer_code, похоже, вообще не имеет никакого эффекта. Что мне не хватает?

Я следил за этим:

этот пост стека стека безуспешно.

Мои две модели:

class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(db_index=True, unique=True, max_length=200)
    customer_code = models.CharField(max_length=300, blank=True, null=True, default=None)
class Bill(models.Model):
    customer = models.ForeignKey(
        User, on_delete=models.CASCADE, blank=True, null=True, related_name="customer_bill"
    )
    payable_amount = models.DecimalField(max_digits=10, decimal_places=2, default=0)

Просмотр:

class BillView(APIView):
    def get(self, request, format=None):
        q = Bill.objects.all().select_related('customer')        
        s = BillSerializer(q, many=True)
        return JsonResponse({            
            "bill": s.data
        })

Сериализатор:

class BillSerializer(serializers.ModelSerializer):
    
    customer_code = serializers.CharField(source='user.customer_code', read_only=True)
    
    class Meta:
        model = Bill        
        fields = ('id','payable_amount','customer_code') # binding customer_code here 

Текущий вывод:

"bill": [
        {
            "id": 1,
            "payable_amount": "1000.00"
        },
        {
            "id": 2,
            "payable_amount": "2000.00"
        }
    ]

Ожидаемый результат:

"bill": [
        {
            "id": 1,
            "payable_amount": "1000.00",
            "customer_code": "CUS10001"   # want this to be attached

        },
        {
            "id": 2,
            "payable_amount": "2000.00",
            "customer_code": "CUS10002"   # want this to be attached
        }
    ]

person Mohammad Monir Hossain    schedule 07.02.2021    source источник
comment
Что, если вы попробуете source='customer.customer_code'?   -  person Crosby    schedule 07.02.2021
comment
Это работало как огонь! Большое спасибо. Буду признателен, если вы поделитесь мыслями о том, как source связывает customer.customer_code. Объяснение было бы здорово, ура!   -  person Mohammad Monir Hossain    schedule 08.02.2021
comment
В модели Bill единственным полем, связанным с вашей моделью User, является поле customer (которое имеет атрибут customer_code).   -  person Crosby    schedule 08.02.2021
comment
Ага, есть смысл. Еще раз, спасибо.   -  person Mohammad Monir Hossain    schedule 08.02.2021