J'ai donné des détails sur mon code: Je ne sais pas pourquoi ma table est vide (il semble qu'elle était vide après avoir appelé save_model
, mais je ne suis pas sûre).Django: enregistrer une nouvelle valeur dans un ManyToManyField
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)
Les vues admin django se produisent dans une transaction, qui sont annulées si une exception est levée. La page de résultats s'affiche-t-elle normalement? Une autre possibilité pourrait être une erreur que nous avons tous à faire: interrogez-vous la bonne base de données dans la session shell? La base de données est-elle accessible en écriture par le processus django? – vincent