Bonjour, je rencontre un soucis pour la modification du formulaire de modification (et de création) dans la page admin.

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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
from django.db import models
from django.conf import settings
from django.utils.translation import ugettext_lazy as _
from myUser.models import User
 
class Customer(models.Model):
    fidelite = models.IntegerField(default=0)
    inscription = models.DateField(_("Date"), auto_now_add=True)
    newsletter = models.BooleanField(default=False)
    myUser = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        limit_choices_to={'is_staff': False},
    )
    customerSponsor = models.ForeignKey(
        'self',
        on_delete=models.CASCADE,
        null=True,
        blank=True,
    )
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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
from django.contrib import admin
from .models import Customer
from django import forms
 
class CustomerCreationForm(forms.ModelForm):
    pass
 
class CustomerChangeForm(forms.ModelForm):
    class Meta:
        model = Customer
        #fields = ("__all__")
        fields = ('fidelite','newsletter')
 
    def __init__(self, *args, **kwargs):
        super(Customer, self).__init__(*args, **kwargs)
        self.fields['customerSponsor'].queryset = Customer.objects.filter(newsletter=True)
        print('toto')
 
class CustomerAdmin(admin.ModelAdmin):
    #form = CustomerChangeForm
    add_form = CustomerCreationForm
 
    class Meta:
        model = Customer
 
 
admin.site.register(Customer, CustomerAdmin)
Comme vous pouvez le voir je suis rester sur quelques choses de simple. Cependant le formulaire reste le même... Pas de filtre ni de redéfinition par rapport au champ renseigné...
Il s'agit d'un test :

Pour le résultat voulu : je souhaite filtrer les clients dont le champ inactive = False sur l'utilisateur (myUser) et dont le client est différent du mien

Il s'agit de la page administration.