Je voudrais être en mesure d'inclure une référence à l'utilisateur actuellement authentifié avec une note lorsque vous travaillez avec Notes à partir de l'interface d'administration. Le modèle ressemblerait à quelque chose comme:Un modèle Django peut-il automatiquement renseigner l'utilisateur authentifié actuel à partir de l'interface d'administration?
from django.db import models
from django.contrib.auth.models import User
from datetime import datetime
class Note(models.Model):
datetime = models.DateTimeField(default=datetime.now)
author = models.ForeignKey(User, default=authenticated_user)
note = models.TextField()
def __unicode__(self):
return unicode(self.author) + u' - ' + unicode(self.datetime)
Le seul champ que l'utilisateur devrait voir est le champ de texte de note. Le datetime et l'auteur doivent être remplis automagiquement par le modèle, l'interface d'administration ou autre. Cela peut-il être fait? Quelqu'un at-il un exemple de code?
Merci!
Cela devrait fonctionner, mais si vous vouliez montrer le champ utilisateur sous la forme avant de l'enregistrer? – user27478
Voulez-vous vraiment afficher un champ * editable * pour l'utilisateur? C'est une clé étrangère, alors voulez-vous une boîte de sélection avec tous les utilisateurs disponibles, mais l'actuelle pré-sélectionnée? Si oui, je suppose que vous pourriez essayer de surcharger add_view sur votre classe ModelAdmin pour passer un champ initial supplémentaire - jetez un oeil à django.contrib.admin.options pour le code. Si vous souhaitez simplement * afficher * le nom d'utilisateur, vous pouvez le faire dans le modèle en utilisant {{request.user}}. –