J'obtiens une syntaxe invalide (, ligne 15) pylint (syntax-error) [15,6] qui m'empêche de faire des migrations. Travaillait avant d'ajouter quelques champs que l'on travaillait auparavant.

Cela avait fonctionné auparavant.

J'ai ajouté les choix de classes de modèles utilisant des groupes nommés pour regrouper les météorites au lieu de classes héritées qui, selon les gens, causent des problèmes d'après ce que j'ai lu. Pourrait y trouver quoi que ce soit qui pourrait le causer mais toujours une possibilité.

J'ai essayé de le supprimer et de le reformater pour voir si l'indentation ne fonctionnait pas. Cela résout généralement les problèmes pour moi.

J'ai également essayé ce résultat de stackoverflow L'ajout d'ImageField au modèle provoque une exception dans django

Mais j'avais déjà un oreiller installé et la partie unicode ne faisait aucune différence.

J'ai également vérifié pour voir si [mes parenthèses sont équilibrées] [1] ce que je crois être mais était un résultat de stackoverflow. . J'ai ajouté la valeur par défaut à tout pour que je puisse effectuer des migrations la dernière fois que cela a fonctionné et j'ai effectué des migrations et ajouté un exemple.


default='')

Il dit que c'est cette ligne ci-dessous

    main_image=models.FileField(upload_to='media/', default='')

blog / models.py

    from django.db import models
    from django.utils import timezone


    class Post(models.Model):
        CATEGORY_CHOICES = (
        ('iron meteorites', 'iron meteorites'),
        ('stony meteorites', 'stony meteorites'),
        ('stony-iron meteorites', (
            ('pallasite', 'pallasite'),
            ('mesosiderites', 'mesosiderites'),
            ),
        )

        main_image=models.FileField(upload_to='media/', default='')
        second_image=models.FileField(upload_to='media/', default='')
        arthor=models.CharField(max_length=256, default='')
        title=models.CharField(max_length=256, default='')
        description=models.TextField(default='')
        more_info=models.TextField(default='')
        l_heading=models.CharField(max_length=256, default='')
        l_heading_text=models.CharField(max_length=256, default='')
        qoute=models.CharField(max_length=256, default='')
        qoute_name=models.CharField(max_length=256, default='')
        s_heading=models.CharField(max_length=256, default='')
        s_heading_text=models.CharField(max_length=256, default='')
        category=models.CharField(
            max_length=256, choices=CATEGORY_CHOICES, default='')
        created_date=models.DateTimeField(default='')
        text=models.TextField(default='')
        tag_1=models.CharField(max_length=256, default='')
        tag_2=models.CharField(max_length=256, default='')
        tag_3=models.CharField(max_length=256, default='')

        class Meta:
            ordering=['-created_date']
        def __str__(self):
            return self.title


  [1]: https://stackoverflow.com/questions/13565099/django-invalid-syntax-error
0
JohnT 9 mai 2020 à 00:45

3 réponses

Meilleure réponse

Vous avez manqué un ), Aussi simple que ceci:

CATEGORY_CHOICES = (
    ('iron meteorites', 'iron meteorites'),
    ('stony meteorites', 'stony meteorites'),
    ('stony-iron meteorites', (
        ('pallasite', 'pallasite'),
        ('mesosiderites', 'mesosiderites'),
        ),
    ),
)
1
Suh Fangmbeng 8 mai 2020 à 22:02

J'ai trouvé que j'avais besoin de changer ça

  class Post(models.Model):
        CATEGORY_CHOICES = (
        ('iron meteorites', 'iron meteorites'),
        ('stony meteorites', 'stony meteorites'),
        ('stony-iron meteorites', (
            ('pallasite', 'pallasite'),
            ('mesosiderites', 'mesosiderites'),
            ),
        )

Dans ce

class Post(models.Model):
    CATEGORY_CHOICES = [
    ('iron meteorites', 'iron meteorites'),
    ('stony meteorites', 'stony meteorites'),
    ('stony-iron meteorites', (
        ('pallasite', 'pallasite'),
        ('mesosiderites', 'mesosiderites'),
        ),
    ),
    ]

J'ajoute également une valeur par défaut pour la catégorie.

 category=models.CharField(
        max_length=256, choices=CATEGORY_CHOICES, default='stony meteorites')

J'ai remarqué qu'ils ont fait de cette façon dans les documents en utilisant YEAR_IN_SCHOOL_CHOICES = [pour commencer au lieu d'un YEAR_IN_SCHOOL_CHOICES = (

YEAR_IN_SCHOOL_CHOICES = [
        (FRESHMAN, 'Freshman'),
        (SOPHOMORE, 'Sophomore'),
        (JUNIOR, 'Junior'),
        (SENIOR, 'Senior'),
        (GRADUATE, 'Graduate'),
    ]
    year_in_school = models.CharField(
        max_length=2,
        choices=YEAR_IN_SCHOOL_CHOICES,
        default=FRESHMAN,
    )
0
JohnT 8 mai 2020 à 22:15

Je pense qu'il y a une parenthèse de trop pour la variable CATEGORY_CHOICES où ('pallasite', 'pallasite') est. Ou vous avez manqué de fermer cette parenthèse ...

0
Christopher 8 mai 2020 à 22:05