мой класс двух моделей:
class Bank(models.Model):
name = models.CharField(max_length=200)
def __str__(self):
return self.name
class Branch(models.Model):
ifsc = models.CharField(max_length=200)
name = models.CharField(max_length=200)
address = models.TextField(max_length=200)
city = models.CharField(max_length=200)
state = models.CharField(max_length=200)
bank = models.ForeignKey(Bank, on_delete=models.CASCADE,max_length=200)
def __str__(self):
return f"{self.name}"
классы сериализатора,
class BankSerializer(serializers.ModelSerializer):
class Meta:
model = Bank
fields = '__all__'
class BranchSerializer(serializers.ModelSerializer):
bank = serializers.CharField(source='bank.name', read_only=True)
class Meta:
model = Branch
fields = ["ifsc","name","address","city","state","bank"]
и Views.py
class CityBankNameView(APIView):
def get_object(self, bank_name, city_name):
try:
bank = Bank.objects.get(name=bank_name)
branches = Branch.objects.filter(bank__icontains=bank, city=city_name) #<-- icontains
return branches
except:
return HttpResponse(status=status.HTTP_404_NOT_FOUND)
def get(self,request, bank_name, city_name):
branches = self.get_object(bank_name, city_name)
serializer = BranchSerializer(branches, many=True)
return Response(serializer.data)
Я получаю ошибку атрибута при использовании bank__icontains
точная ошибка:
AttributeError в / Branches / DELHI / AXIS BANK Ошибка AttributeError при попытке получить значение для поля ifsc
в сериализаторе BranchSerializer
. Поле сериализатора может иметь неправильное имя и не соответствовать ни одному атрибуту или ключу в экземпляре bytes
. Исходный текст исключения был: у объекта 'bytes' нет атрибута 'ifs c'.
Я пытаюсь часами, но не могу найти никакого решения. Я видел разные ответы, но ни один из них не помогает решить этот вопрос