2013-04-15 2 views
1

Недавно я запустил API для своего проекта на django-tastypie. на самом деле я хочу исключить некоторые полевые требования в почтовых запросах.исключить некоторые поля в данных сообщений tastypie

Предположим, что моя модель имеет четыре поля и все они определены как требуемые в модели django. Но я хочу получить два из них из запроса API, а два других будут заполнены моими функциями.

Итак, как я могу сообщить tastypie, чтобы получить только эти два поля и пропустить другие?

+0

Выполнена ли учебник по HTTP: //django-tastypie.readthedocs. org/ru/последние /? –

ответ

0

Если вы хотите, чтобы исключить те же поля, которые вы можете сделать это, определить его в мета-класс ресурса, например:

class MyResource(ModelResource): 
    class Meta: 
     excludes = (field1, field2) 

И эти поля будут исключены каждый раз, когда для этого ресурса.

Но если вы хотите только на пост, чтобы получить различные поля так, как я делаю это с помощью переопределения обезвоживает метод:

def dehydrate(self, bundle): 
    if bundle.request.META['REQUEST_METHOD'] == 'POST': 
     bundle.data = dict(my_field1=bundle.obj.my_func1(), 
          my_field2=bundle.obj.my_func2() 
          ) 
    return bundle 
+0

'исключает' не защищает вас от POST. Вы все еще можете создать новый объект с 'my_field1' и' my_field2'. Также «обезвоживание» должно быть «гидратировано». –

+0

Если исключение не защищает вас от POST, как вы защищаете ресурс от обновления исключенных полей? Благодарю. –

Смежные вопросы