12

Ben, djangorestframework kullanıyorum ve birisi URL'de yalnızca bir Person nesnesinin kimliğini geçirerek .../peoplelist/2/markAsSeen adresine bir PUT isteği yapıyor. Kişi nesnesini (bu durumda 2) getirip, sonra getirilen Kişi nesnesinin alanını has_been_viewed alanını Doğru olarak değiştirin. Güncelleştirilmiş Kişi nesnesi daha sonra serileştirilecek ve istemciye geri gönderilecek.djangorestframework serializer hataları: {u'non_field_errors ': [u'No giriş sağlanan']}

if request.method == 'PUT': 
    serializer = PersonSerializer(person,partial=True)#person is a valid object here 
    if serializer.is_valid(): 
     serializer.save() 
     return Response(serializer.data) 
    else: 
     return Response(serializer.errors,) 

serileştirici hataları Sen serileştiriciye haberdar olmak için bir kişinin örneğini veren konum, ancak hiçbir beraberindeki veri ile bu örneği güncellemek için

class PersonSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = Person 
     fields = ('id',) 

cevap

17

{u'non_field_errors': [u'No input provided']} serializer.data bana iyi göründü olduğunu.

örneğin, o zaman data argüman kaçırdığını ile bu örneği güncellemek için bazı istek veri serisini isterseniz:

PersonSerializer(person, data=request.DATA, partial=True) 

o aslında beklemediğini istediğiniz son nokta gibi geliyor Ancak Herhangi bir giriş verisi ile uğraşmak (bu sadece doğru bir boş PUT isteği yapmak mı?) Bu durumda, hiç bir seri hale getirici kullanmak/istemiyorum.

+4

Teşekkürler Tom. Seri hale getirme onayının serileştirme onil için olduğunu anlamıştım. İşlemin tamamlandığından emin olmak için doğrulamak için bir seri hale getirici (okuma veya yazma için) çağırdığınızı düşünmüştüm. – user798719