Bonjour a tous
je veux crée une api de covoiturage, donc j'ai crée ces principaux modèles:
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
 
class lieux(models.Model):
 
    wilaya = models.CharField(max_length=20)
    ville = models.CharField(max_length=20)
    rue = models.CharField(max_length=30)
 
class Course(models.Model):
    user_driver = models.ForeignKey(User, on_delete=models.CASCADE)
    time_creation =models.DateField()
    time_depart =models.DateField()
    nbr_places = models.IntegerField()
    trajet_course = models.ManyToManyField(lieux,through='trajet',related_name='trajets',blank=True)
    participents_course = models.ManyToManyField(User, through='participents',related_name='U_P',blank=True)
    demande_course = models.ManyToManyField(User, through='demande_participe',related_name='D_P',blank=True)
 
class trajet(models.Model):
    #type_c = [('D','depart'),('AV','arrivé'),('AT','arret')]
    type_course = models.CharField(max_length=10,null=True)
    num_arret = models.IntegerField(null=True,blank=True)
    arret=models.ForeignKey(lieux, on_delete=models.CASCADE,null=True)
    course_arret = models.ForeignKey(Course, on_delete=models.CASCADE,null=True)
    class participents(models.Model):
    users_voyageur = models.ForeignKey(User, on_delete=models.CASCADE)
    course_participer = models.ForeignKey(Course, on_delete=models.CASCADE)
    prix_payer = models.IntegerField(null=True)
 
 
 
class demande_participe(models.Model):
    users_demadeur = models.ForeignKey(User, on_delete=models.CASCADE)
    course_demande = models.ForeignKey(Course, on_delete=models.CASCADE)
    reponse_demande = models.IntegerField(null=True)
et le Serializer :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
class courses_json(serializers.ModelSerializer):
    #type_course = serializers.ReadOnlyField(source= 'trajet.type_course')
    #num_arret = serializers.ReadOnlyField(source='trajet.num_arret')
    user_driver = UserSerializer(read_only = True)
    #trajet_course = trajet_json(many = True,read_only = True)
    trajet_course = lieux_json(many = True)
    participents_course = UserSerializer(many = True,read_only = True)
    demande_course = UserSerializer(many = True)
 
    class Meta:
        model = Course
        fields = ('__all__')

et j’obtiens ce résultat :

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
34
35
36
37
38
39
40
 
{
        "id": 15,
        "user_driver": {
            "username": "animalx123",
            "id": 30
        },
        "trajet_course": [
            {
                "id": 34,
                "wilaya": "annaba",
                "ville": "centre ville",
                "rue": ""
            },
            {
                "id": 35,
                "wilaya": "alger",
                "ville": "dergana",
                "rue": ""
            }
        ],
        "participents_course": [],
        "demande_course": [
            {
                "username": "malcomx",
                "id": 31
            },
            {
                "username": "ZedNiiw55",
                "id": 57
            },
            {
                "username": "animalx123",
                "id": 30
            }
        ],
        "time_creation": "2019-09-28",
        "time_depart": "2019-12-14",
        "nbr_places": 3
    },
alors que je veux avoir le model trajet avec les lieux dedans comme ça :

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
34
35
36
37
38
39
40
41
42
43
44
45
46
 
 
{
        "id": 15,
        "user_driver": {
            "username": "animalx123",
            "id": 30
        },
        "trajet_course": [
         {
           "type_course":"départ"
 
            {
                "id": 34,
                "wilaya": "annaba",
                "ville": "centre ville",
                "rue": ""
            }},
            {
                "type_course" :"Arrivé"
              {
                "id": 35,
                "wilaya": "alger",
                "ville": "dergana",
                "rue": ""
            }
        ],
        "participents_course": [],
        "demande_course": [
            {
                "username": "malcomx",
                "id": 31
            },
            {
                "username": "ZedNiiw55",
                "id": 57
            },
            {
                "username": "animalx123",
                "id": 30
            }
        ],
        "time_creation": "2019-09-28",
        "time_depart": "2019-12-14",
        "nbr_places": 3
    },
j'ai bien cherché sur le net et forum mais j'ai pas trouvé une solution a ma problématique, car même dans le model (demande_participe et participents) me retourne pas tout les champs mais que qui sont en relation (ForeignKey),
merci de m'aider car ça fait des semaines que je coince sur ce problème.