我怎样才能得到一个对象?

时间:2021-07-26 17:38:41

标签: python django

型号:

class Contacts(models.Model):
  libId = models.ForeignKey(verbose_name='Библиотека', to=Libraries, on_delete=models.CASCADE)
  name = models.CharField('ФИО', max_length=257, blank=True)
  position = models.CharField('Должность/название отдела', max_length=257)
  phoneNum = models.BigIntegerField('Номер телефона', validators=[MaxValueValidator(79999999999)])

  def __str__(self):
      return self.name

序列化器:

class ContactsSerializers(serializers.ModelSerializer):
class Meta:
    model = Contacts
    fields = '__all__'

我可以从该模型中获取所有对象:

class ContactsView(generics.ListAPIView):
  serializer_class = ContactsSerializers
  queryset = Contacts.objects.all()

但是我怎样才能从用户输入中得到一个?

1 个答案:

答案 0 :(得分:1)

您必须使用 RetriveAPIView 来获取这样的单个对象:

class ContactsView(generics.RetrieveAPIView):
  serializer_class = ContactsSerializers
  queryset = Contacts.objects.all()
  lookup_field = 'pk'

您的网址应如下所示:

path('some-path-goes/<int:pk>/', ContactsView.as_view(), name='some_name')