Hi! I don't know how to make django-piston save my related objects.

This is my handler file:

from piston.handler import BaseHandler, AnonymousBaseHandler
from piston.utils import rc, require_mime, require_extended
from test.networking.models import NetworkingProfile

class NetworkingProfileHandler(BaseHandler):
    model = NetworkingProfile

    def create(self, request):
        attrs = self.flatten_dict(request.POST)

        if (self.exists(**attrs)):
            return rc.DUPLICATE_ENTRY
        else:
            if ('languages' in  attrs):
                languages = list()
                for code in attrs['languages'].split(','):
                    languages.append(Language().get_language(code))
                attrs['languages'] = languages
            networking_profile = NetworkingProfile(user=request.user,
**attrs)
            networking_profile.save()
            return networking_profile

And this, my related models:

class NetworkingProfile(models.Model):
    user = models.ForeignKey(User, unique=False)

    searching = models.TextField(blank=False, help_text='Little description
about what are you searching for.')
    languages = models.ManyToManyField(Language)
    place = models.CharField(max_length=64, blank=True, help_text='A place
where you will be in the future.')
    availability = models.DateTimeField(default=datetime.now, blank=True,
help_text='Temporal availability.')

class Language(models.Model):
    code = models.CharField(max_length=12, primary_key=True,
help_text='Example: en, es...')
    name = models.CharField(max_length=64, help_text='The real name.')

    def __unicode__(self):
        return u'%s' % (self.name)

    def get_language(self, code):
        return Language.objects.get(code=code)

If I test with: curl -u user:password http://127.0.0.1/api/np/ -F
"searching=example" it works perfectly, but If I write: curl -u
user:password http://127.0.0.1/np/ -F "searching=example" -F
"languages=it,gl" it fails with error:

Piston/0.2.3rc1 (Django 1.2) crash report:

Method signature does not match.

Resource does not expect any parameters.

Exception was: 'languages' is an invalid keyword argument for this function

I've test lot of ways to do that, but I can't know how to do it work.

Thanks for your help.

Regards,
Álex González
-- 
Please, don't send me files with extensions: .doc, .docx, .xls, .xlsx, .ppt
and/or .pptx
http://mirblu.com

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to