Création de l'auto-population par field avec le Site Admin de Django

je veux utiliser L'interface D'administration Django pour une application web très simple mais je ne peux pas contourner un problème qui ne devrait pas être si difficile à résoudre ..

considérer ce qui suit:

class Contact(models.Model):
    name = models.CharField(max_length=250, blank=False)
    created_by = models.ForeignKey(User, blank=False)

Je n'arrive pas à trouver un moyen d'auto-remplir le champ created_by et d'en informer L'administrateur de Django. La plupart de la méthode que j'ai vue implique de surcharger la méthode de sauvegarde de L'objet et de la transmettre à l'utilisateur de la requête. Ils ont tous besoin de construire votre points de vue et/ou les formulaires.

de manière optimale, le formulaire pour créer de nouveaux contacts dans le site d'administration ne doit pas afficher le champ created_by (ce qui est assez facile) et l'auto-remplir avec l'utilisateur courant (ce qui semble plus difficile qu'il ne devrait).

19
demandé sur h3. 2009-05-13 06:42:01

3 réponses

http://code.djangoproject.com/wiki/CookBookNewformsAdminAndUser

implique l'implémentation de méthodes de sauvegarde sur vos objets ModelAdmin.

25
répondu jsamsa 2009-05-13 02:50:42

vous devez spécifier un par défaut pour le champ, dans ce cas un appel de méthode qui obtient l'utilisateur courant (voir la documentation auth pour obtenir l'utilisateur courant).

4
répondu Tom Leys 2009-05-13 03:04:21

j'ai vraiment voulu une meilleure solution que celles que j'ai trouvées ailleurs, donc j'ai écrit un peu de middleware - implémentation sur le peupler question d'identification de l'utilisateur . Ma solution ne nécessite aucun changement de forme ou de vue.

1
répondu mindlace 2017-05-23 12:26:38