Django “Currencysys”对象不可编辑

Django “Currencysys”对象不可编辑,django,api,django-rest-framework,Django,Api,Django Rest Framework,我的模型和序列化有问题,我对两个表进行内部联接,如下所示: # file views.py from Wallet class WalletBalances(generics.ListAPIView): serializer_class = WalletSerializer def get_object(self, current_user): return Wallet.objects.filter(currencysys__id=F('currency

我的模型和序列化有问题,我对两个表进行内部联接,如下所示:

# file views.py from Wallet
class WalletBalances(generics.ListAPIView):
      serializer_class = WalletSerializer

    def get_object(self, current_user):

        return Wallet.objects.filter(currencysys__id=F('currencysys_id'), 
                                 user_id=current_user)


    def get(self, request, format=None):
        current_user = request.user

        list_balances = self.get_object(current_user.id)
        serializer = self.serializer_class(list_balances, many=True)
        get_data = serializer.data

        return JsonResponse({'data': get_data}, safe=False, 
                              status=status.HTTP_200_OK)
错误显示is='CurrencySys'对象不可编辑

我的文件钱包/序列是

from other_project.serializers import CurrencySysSerializer

class WalletSerializer(serializers.ModelSerializer):
      # currencysys = CurrencySysSerializer(many=True)
      currencysys = serializers.StringRelatedField(many=True)

     class Meta:
         model = Wallet
         fields = '__all__'
我的模型是:

# Currency / models.py
class CurrencySys(models.Model):
      currency_symbol = models.CharField(max_length=45, blank=True)
      currency_name = models.CharField(max_length=45, blank=True)
      currency_status = models.BooleanField(blank=True)
      currency_crypto = models.BooleanField(blank=True)

# wallet / models.py
class Wallet(models.Model):
      addresskey = models.CharField(max_length=40, blank=True)
      name_wallet = models.CharField(max_length=45, blank=True)
      currencysys = models.ForeignKey(CurrencySys, 
                                  on_delete=models.CASCADE)
      user = models.ForeignKey(User, on_delete=models.CASCADE)
为什么要告诉我这个错误以及如何解决这个问题,请帮助我

感谢您的关注。

currencysys是一个单一的ForeignKey对象。因此,你不需要很多=真实的论据:

class WalletSerializer(serializers.ModelSerializer):
      # currencysys = CurrencySysSerializer(many=True)
      currencysys = serializers.StringRelatedField()

     class Meta:
         model = Wallet
         fields = '__all__'

CurrencySys是什么意思,特别是Sys部分代表什么?为什么在CurrencySys的类属性前面加上currency\uux。这是一种可怕的做法。Django将在内部为它们添加前缀。现在您的数据库中的列名非常混乱。您好,CurrencySys只是一个名称,这是一个类型错误。我的类是CurrencySys,很抱歉混淆。谢谢,对了,我解决了我的问题,但只显示钱包表中的字段,而不是其他字段CurrencySys,请如何显示所有数据,如select*from。。。。please@AngelOmarRojasPacheco在这种情况下,您需要删除currencysys=serializers.StringRelatedField行,并将depth=1添加到meta。详情如下: