Je crée un site web où chaque utilisateur a une instance Profile associée, parce que je veux que le Modèle utilisateur pour gérer uniquement les fonctions utilisateur liées à l'authentification et le modèle Profile pour gérer tout le reste (comme les images téléchargées par l'utilisateur, etc.) Le profil a un User OneToOneField. Cependant, je veux être en mesure d'accéder à la page de détails de chaque profil en utilisant le modèle d'URL site/profile/[nom d'utilisateur] /. Ceci est impossible sans stocker le nom d'utilisateur dans les modèles User et Profile, car slug_field pour Profile ViewView doit être une clé primaire de Profile, et le nom d'utilisateur est un champ User. Est-il possible de le faire sans stocker le nom d'utilisateur dans deux endroits différents?Django: J'ai un modèle Profile, et je veux que le slug pour la page de détails du profil soit un nom d'utilisateur, qui est stocké dans User model
0
A
Répondre
1
Ce n'est pas nécessaire. Vous pouvez essayer de cette façon.
Dans urls.py
from .import views
url(r'^(?P<usernameslug>[-_\w]+)/detail/$',views.detailprofile)
En supposant Modèle
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
. . . .
. . . .
Dans les vues
def detailprofile(request,usernameslug):
profile=Profile.objects.get(user__username=usernameslug)
@ Vik78 Si la solution a fonctionné pour vous s'il vous plaît Votez et sélectionnez et si toujours un problème est là, faites-moi savoir par les commentaires ci-dessous. Merci pour toute la coopération –