вкусноpie не удалит ссылку на иностранный ключ во время PUT - PullRequest
3 голосов
/ 16 февраля 2012

У меня проблема с тем, что Tastypie не сохраняет изменения в моем объекте, когда я делаю PUT, из-за которого для поля постороннего ключа устанавливается значение NULL.

Вот мой ModelResource:

class FolderResource(ModelResource):
    parent = fields.ForeignKey('self','parent',full=True,default=None,blank=True,null=True)
    project = fields.ForeignKey(ProjectResource,'project',full=False)
    class Meta:
        queryset = Folder.objects.all()
        authentication = Authentication()
        authorization = Authorization()
        resource_name = 'folder'
        include_absolute_url = True
        always_return_data = True
        filtering = {
            "slug": ('exact', 'startswith',),
            "name": ALL,
            "project":ALL_WITH_RELATIONS,
            "parent":ALL_WITH_RELATIONS,
            "id":('exact')
            }

У меня есть существующий объект папки со следующими данными:

{
    absolute_url: "/projects/1/files/5/",
    created_date: "13 Feb 2012",
    id: "5",
    modified_date: "15 Feb 2012",
    modified_file: null,
    name: "testfolder2",
    parent: {
        absolute_url: "/projects/1/files/1/",
        created_date: "4 Feb 2012",
        id: "1",
        modified_date: "15 Feb 2012",
        modified_file: null,
        name: "testfolder1",
        parent: null,
        project: "/projects/api/v1/project/1/",
        removed_date: null,
        resource_uri: "/projects/api/v1/folder/1/",
        slug: "testfolder1"
    },
    project: "/projects/api/v1/project/1/",
    removed_date: null,
    resource_uri: "/projects/api/v1/folder/5/",
    slug: "testfolder2"
}

Я попытаюсь поместить следующие данные в '/projects / api / v1 / folder / 5 / ':

{
    parent: null
}

Я не получаю никаких ошибок, все выглядит нормально, но в базу данных ничего не сохраняется.Может кто-нибудь сказать мне, что я делаю неправильно или почему изменения не сохраняются?

1 Ответ

0 голосов
/ 10 марта 2012

Если вы хотите выполнить частичное обновление, вам нужен метод PATCH.

...