2012-04-04 3 views
0

Я пытаюсь добавить данные профиля внутри UserResource, но я не могу найти способ сделать это.Tastypie - Профиль как вложенный ресурс

Я подправили немного обнаруженный код на docs, как это:

class UserResource(ModelResource): 
    profile = fields.ForeignKey(UserProfile, 'profile', full=True) 

    class Meta: 
     queryset = User.objects.all() 
     resource_name = 'user' 
     excludes = ['email', 'password', 'is_active', 'is_staff', 'is_superuser'] 

     #authentication = BasicAuthentication() 
     authorization = DjangoAuthorization() 

    def dispatch(self, request_type, request, **kwargs): 

     kwargs['profile'] = request.user.get_profile() 
     return super(UserResource, self).dispatch(request_type, request, **kwargs) 

Но дает мне эту ошибку:

error_message: Cannot resolve keyword 'profile' into field. Choices are: date_joined, email, first_name, groups, id, is_active, is_staff, is_superuser, last_login, last_name, logentry, password... 

Любая идея, как решить эту проблему?

Спасибо!

ответ

0

Во-первых, я бы удостоверился, что вы используете ProfileResource, а не только модель. Во-вторых, User.profile переходит к профилю. Возможно, что-то вроде:

class UserResource(ModelResource): 
    profile = fields.ForeignKey('myapp.api.resources.ProfileResource', 'profile', full=True) 

    class Meta: 
     queryset = User.objects.all() 
     resource_name = 'user' 
     excludes = ['email', 'password', 'is_active', 'is_staff', 'is_superuser'] 

     #authentication = BasicAuthentication() 
     authorization = DjangoAuthorization() 
Смежные вопросы