2017-10-02 1 views
-1

Je travaille sur une application qui a plusieurs modèles de profil utilisateur que OneToOne field à auth.User. Pour un type spécifique de tableau de bord de profil, disons VendorSales, est-il préférable d'écrire un DetailView qui prend l'ID VendorSales dans l'URL, ou simplement utiliser un TemplateView sans url pk et référence request.user.vendorsales dans le template et self .request.user.vendorsales dans les données de contexte?Django TemplateView vs DetailView

Répondre

0

Vous n'avez pas besoin de clé primaire ou de slug dans l'URL lorsque vous utilisez DetailView - vous pouvez remplacer get_object et accéder à l'objet via self.request.user.

def get_object(self): 
    return self.request.user.vendorsales 

Que vous utilisiez DetailView ou TemplateView, vous pouvez trouver LoginRequiredMixin utile pour limiter l'accès à la vue.

0

Si vous voulez que votre vue survive à un rechargement, vous devez mettre une sorte d'identifiant dans l'URL. Dans le cas où vous souhaitez que votre modèle de votre application/api de manière RESTfull, alors vous devriez penser à ne pas simplement mettre une URL, mais aussi comprendre cette vue comme une nouvelle ressource -> résultant dans une nouvelle vue avec peu ou pas les connexions à la vue des utilisateurs (sauf les URL de liaison).