【发布时间】:2021-11-02 08:46:36
【问题描述】:
早安,
我想问一下,是否有可能在我的序列化程序中获得额外的数据? 这些是我的模型...
models.py
class Chair(models.Model):
name = models.CharField(max_length=100, null=False, blank=False, unique=True)
bookable = models.BooleanField(default=False)
user_created = models.CharField(max_length=100)
date_created = models.DateField(auto_now_add=True)
class Booking(models.Model):
chair = models.ForeignKey(Chair, on_delete=models.CASCADE)
day = models.DateField()
user_name = models.CharField(max_length=100)
user_created = models.CharField(max_length=100)
date_created = models.DateField(auto_now_add=True)
还有这些我的序列化器...
serializers.py
class BookingSerializer(serializers.ModelSerializer):
class Meta:
model = Booking
fields = '__all__'
class ChairSerializer(serializers.ModelSerializer):
class Meta:
model = Chair
fields = '__all__'
当在 js 中发出这样的请求时...
views.py
@api_view(['GET'])
def bookings_by_date(request, pk):
bookings = Booking.objects.filter(day=pk)
serializer = BookingSerializer(bookings, many=True)
return Response(serializer.data)
script.js
let url = '...here's my url for Booking...';
fetch(url)
.then((resp) => resp.json())
.then(function(data) {
// do something here
});
...我不仅想获得椅子的 id (models.Foreignkey),还想获得它的名字。我的第一个想法是做这样的事情......
class ChairSerializer(serializers.ModelSerializer):
class Meta:
model = Chair
fields = [
...
'chair',
'chair__name',
...
]
...但这似乎不起作用!有谁知道我的问题的解决方案?感谢您的所有帮助,祝您周末愉快!
【问题讨论】:
标签: python django serialization django-rest-framework request