2017-07-12 2 views
1

J'utilise django-import-export dans une application de mon projet web.L'exportation d'importation Django ne peut pas importer MultiSelectField Checkbox

Le fichier class.py est aussi:

class Article(models.Model): 
    siret = models.CharField(max_length=16) 
    newspaper = models.CharField(max_length=200) 
    writer = models.CharField(max_length=1000) 
    TOPIC_TYPE = (
      ('Sport', 'Sport'), 
      ('Beauté','Beauté'), 
      ('Food', 'Food'), 
      ('Business', 'Business'), 
      ('Music', 'Music'), 
      ('Art', 'Art'),) 
    topics = MultiSelectField(choices = TOPIC_TYPE) 

Notez que sujets est un MultiSelectField.
En admin.py J'ai simplement suivi le tutoriel django-import-export, d'où:

class ArticleResource(resources.ModelResource): 
    class Meta: 
     model = Article 
     exclude = ('is_true',) 

class ArticleAdmin(ImportExportModelAdmin): 
    resource_class = ArticleResource 

admin.site.register(Article, ArticleAdmin) 

La question alors que l'importation de données est que vous devinez avec la variable "sujets".
J'ai d'abord exporté un fichier xlsx pour voir comment cette variable est exportée. C'est littéralement comment:

siret    ...  topics 
----------------------------------- 
0000068591590  ...  Music, Art 
0000068591595  ...  Business, Beauté 
0000068591600  ...  Art 

Le problème est avec l'importation de données. J'ai simplement essayé d'importer de nouveau le fichier exporté ci-dessus, en changeant les numéros de "siret".
Une fois importé, dans l'interface d'administration, j'ai été surpris, Django se moquait de moi en sélectionnant seulement le premier sujet pour chaque article dans les CheckBox disponibles (seulement Music pour 0000068591590, seulement Business pour 0000068591595).

enter image description here

D'où j'ai essayé d'importer par:
Musique, Art (comme un moyen d'exportation)
[ 'Musique', 'Art']
[Musique, Art]

Cependant, il est ne fonctionne pas.
Ty

Répondre

0

Lors de l'importation d'un fichier Excel, faites attention à des espaces ... Django exportations comme

siret    ...  topics 
----------------------------------- 
0000068591590  ...  Music, Art 
0000068591595  ...  Business, Beauté 
0000068591600  ...  Art 

Notez les espaces dans les sujets variables.
Vous avez juste à importer choix sélectionner plusieurs comme:

siret    ...  topics 
----------------------------------- 
0000068591590  ...  Music,Art 
0000068591595  ...  Business,Beauté 
0000068591600  ...  Art