我需要在“title”而不是“id”中获取购物篮的值。
如何操作?如何使用ManyToManyField从另一个“Client”模型中的“Position”模型获取“title”的值?它会自动传输ID,并且需要“title”
我已经尝试了很多方法,但...这一定很容易,但我搜索信息2天
class Position(models.Model):
title = models.CharField(max_length=150, verbose_name='Title')
slug = models.SlugField(max_length=100, unique=True, db_index=True, verbose_name='URL')
description = models.CharField(max_length=500, verbose_name='Describe')
photo = models.ImageField(upload_to="photos/%Y/%m/", verbose_name='Photo', null=True)
price = models.DecimalField(decimal_places=2, max_digits=10, verbose_name='Price')
date_create = models.DateTimeField(auto_now_add=True, verbose_name='Date create')
date_update = models.DateTimeField(auto_now=True, verbose_name='Date update')
is_published = models.BooleanField(default=True, verbose_name='Is published')
in_stock = models.BooleanField(default=True, verbose_name='In stock')
class Client(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
basket = models.ManyToManyField('Position', default=None, blank=True, related_name='basket')
def __str__(self):
return f'{self.user.username}, id-{self.user.id}'
class ClientSerializer(serializers.ModelSerializer):
class Meta:
model = Client
fields = "__all__"
class ClientViewSet(viewsets.ModelViewSet):
serializer_class = ClientSerializer
permission_classes = (IsOwnerOrReadOnly,)
def get_queryset(self):
pk = self.kwargs.get('pk')
# need a list of objects, not an one
return Client.objects.filter(pk=pk)
结果:
{
"id": 1,
"user": 1,
"basket": [
1
]
}
我需要这样的东西-“篮子”:[“显示器”,“键盘”]
1条答案
按热度按时间xxslljrj1#
我找到了解决办法:
不要向我扔西红柿,我只是在编程的方式开始:)
由于客户端表中的数据存储在ID中,因此需要使用get_position方法