我提供了有关我的代码的详细信息:我不知道为什么我的表是空的(在调用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)
答案 0 :(得分:2)
您需要在post.authors.add(作者)之后再次保存帖子。
答案 1 :(得分:1)
我找到了解决方案。我刚刚更改了cleaning_data中的值,它可以工作:
if not form.cleaned_data['authors']:
form.cleaned_data['authors'] = [request.user]
感谢帮助我。 :)
答案 2 :(得分:0)
我不知道你正在使用什么样的领域,但不应该在那里有其中一个? (或类似的东西)
author = form.cleaned_data['authors']
User.objects.get(id=author)