Kendi özel API'm yapmak için Django Rest Framework
kullanıyorum, ancak yukarıdaki hatayı alıyorum ve nereden geldiğinden emin değilim. Bu hata hakkında SO üzerinde başka yazılar okudum ama maalesef çok fazla yardım etmediler, bu yüzden birileri yanlış gittiğime işaret ederse çok memnun olurum. Modellerimde bir AutoField
numaralı kimlikte yer aldığımda ve modelinde ve Doctor
modelinde değilken işaretlemeye başladı.Unicode için zorlama: string veya arabellek gerekiyor, int found - Django Rest Framework
benim models.py:
# Create your models here.
class Doctor(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
def __unicode__(self):
return self.id
class Animal(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=200)
gender = models.CharField(max_length=10, choices=GENDER)
breed = models.CharField(max_length=200,)
adoption = models.BooleanField(default=False)
vaccines = models.CharField(max_length=20, choices=VACCINES)
doctor = models.ForeignKey(Doctor, null=True)
def __unicode__(self):
return self.id
serialisers.py:
class DoctorSerealiser(serializers.HyperlinkedModelSerializer):
class Meta:
model = Doctor
fields = ('id' , 'name')
class AnimalSerialiser(serializers.HyperlinkedModelSerializer):
# doctor = DoctorSerealiser(read_only=True)
class Meta:
model = Animal
fields = ('id' , 'name' , 'gender' , 'breed' , 'adoption' , 'vaccines', 'doctor')
views.py
class AnimalList(viewsets.ModelViewSet):
queryset = Animal.objects.all()
serializer_class = AnimalSerialiser
class DoctorDetail(viewsets.ModelViewSet):
queryset = Doctor.objects.all()
serializer_class = DoctorSerealiser
Teşekkürler, bu sorun oldu :) – user3395936
Bir şey değil. Kabul et ve yardım etse, lütfen. – ilse2005
Bu çözümü, doğrudan üzerinde çalıştığım modele bağlı yabancı anahtarı silmek için kaskad içeren bir modele uyguladım. –