0

我详细介绍了我的代码:我不知道为什么我的表是空的(似乎在调用后它是空的save_model,但我不确定)。

class PostAdmin(admin.ModelAdmin):
    def save_model(self, request, post, form, change):
        post.save()

        # Authors must be saved after saving post
        print form.cleaned_data['authors'] # []
        print request.user # pg
        authors = form.cleaned_data['authors'] or request.user
        print authors # pg
        post.authors.add(authors)

        print post.authors.all() # [<User: pg>]

        # But on a shell, table is empty. WTF ?! : 
        # select * from journal_post_authors;
        # Empty set (0.00 sec)
4

3 回答 3

2

您需要在 post.authors.add(authors) 之后再次保存帖子。

于 2009-08-31T10:43:53.363 回答
1

我找到了解决方案。我刚刚更改了cleaned_data 中的值,它可以工作:

if not form.cleaned_data['authors']:
    form.cleaned_data['authors'] = [request.user]

谢谢你帮助我。:)

于 2009-09-01T14:51:30.153 回答
0

我不知道您使用的是哪种字段,但是那里不应该有其中一个吗?(或类似的东西)

author = form.cleaned_data['authors']
User.objects.get(id=author)
于 2009-08-31T14:48:46.320 回答