Bonjour/Bonsoir,

Je débute doucement avec l'utilisation de Django et même si les fondamentaux semblent acquis, je suis souvent bloqué à des petits problèmes, comme celui-ci:

J'utilise le model 'User' de Django pour la connexion et j'ai crée un second model 'Profil' dans lequel j'ajoute à chaque utilisateur les champs dont j'ai besoin qui ne sont pas dans le model 'User' de Django.

Ainsi, à la création de compte, l'utilisateur doit entrer ses informations dans un premier formulaire pour le model 'User' puis est redirigé vers un formulaire lié à 'Profil' dans lequel un attribu user fait lien en OneToOne avec le model 'User'.

J'aimerai que lors de cette redirection, le champ 'user' soit non éditable mais surtout qu'il ai déjà la valeur correspondante visible dans le formulaire sans que l'utilisateur ai à le rentrer.

Voici où j'en suis :
Views.py:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@login_required
def create(request):
    if request.method == 'POST':
        print('Création de l\'utilisateur en cours...')
 
        form = CreateUser(request.POST)
 
        if form.is_valid():
            form.save()
 
            return redirect('create/profil')
 
    else:
        form = CreateUser()
 
    return render(request, 'conge/create.html', {'form': form})
 
@login_required
def create_profil(request):
    if request.method == 'POST':
        print('Création du profil de l\'utilisateur en cours...')
 
        form = CreateProfil(request.POST)
 
        if form.is_valid():
 
            form.save()
 
            return redirect('/list')
 
    else:
        form = CreateProfil()
    return render(request, 'conge/createprofil.html', {'form': form})
forms.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
class CreateUser(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput)
    class Meta:
        model = User
        fields = ['username', 'password', 'first_name', 'last_name']
 
class CreateProfil(forms.ModelForm):
    user = forms.CharField(disabled=True)
    class Meta:
        model = Profil
        fields = ['user' ,'code', 'service']