use*_*936 3 python django django-rest-framework
我正在使用Django Rest Framework我自己的restful API,但我收到上面的错误,我不知道它来自哪里.我已经阅读了有关此错误的其他帖子,但遗憾的是它们没有太多帮助,所以如果有人能指出我哪里出错了,我将不胜感激.当我在模型中创建id时,它开始发生了AutoField,它在Animal模型中标记而不是在标记中Doctor.
我的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
Run Code Online (Sandbox Code Playgroud)
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')
Run Code Online (Sandbox Code Playgroud)
views.py
class AnimalList(viewsets.ModelViewSet):
queryset = Animal.objects.all()
serializer_class = AnimalSerialiser
class DoctorDetail(viewsets.ModelViewSet):
queryset = Doctor.objects.all()
serializer_class = DoctorSerealiser
Run Code Online (Sandbox Code Playgroud)
问题在于__unicode__博士和动物的方法.您正在返回一个int的id,但此方法会检测str/buffer.将其更改为:
def __unicode__(self):
return str(self.id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4949 次 |
| 最近记录: |