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 に答える