2013-11-29 2 views
0

Используя obj_create метод TastyPie, я хочу, чтобы перезаписать расслоение сохранить и вызвать мою объектная модель метод менеджера create_member(), но я получаю следующее сообщение об ошибке при попытке сделать это:TastyPie как получить доступ к методам диспетчера объектов?

Manager isn't accessible via MemberParticipant instances 

Как в TastyPie я могу получить доступ к моим методам объектов диспетчера ? bundle.obj похоже не имеет доступа!

Пробовал:

def obj_create(self, bundle, request=None, **kwargs): 
    bundle.obj = self._meta.object_class() 
    bundle.obj.objects.create_member(stuff) 
return bundle 

Модель:

class MemberManager(models.Manager): 
    def create_member(self, email, password=None, **extra_fields): 
     """ 
     Creates and saves new Member Participant with the given email, password and account. 
     """ 
     time_now = timezone.now() 
     stuff here 


class MemberParticipant(AbstractParticipant): 
    email = models.CharField(max_length=50, blank=True) 
    objects = MemberManager() 
    class Meta: 
     app_label = 'participants' 

ответ

1

На Джанго модель объекта есть _default_manager свойство, которое хранит экземпляр менеджера объекта по умолчанию. Вы можете попробовать это.

>>> m=Model1.objects.all()[0] 
>>> m._default_manager 
<django.db.models.manager.Manager object at 0x2a38b90> 
>>> 

Однако я не уверен, как это ведет себя с tasypie.

+0

Нет, похоже, тоже не понравилось. Почему я не могу получить доступ к этому менеджеру? У Tatypie есть специальные клещи? от взгляда на код tastypie obj просто = на класс, поэтому obj.objects должны работать правильно? – GrantU

+0

@GrantU, Если 'obj' является классом/моделью, тогда' obj.objects' должен работать. – Rohan

+0

Да, это должно штопать. – GrantU

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