2011-05-17 5 views
3

J'essaye de créer une application Django où l'utilisateur peut faire une liste de films. Chaque fois que l'utilisateur se connecte, sa liste de films lui sera présentée dans un tableau. La table aura trois colonnes: une pour le nom du film, une pour le genre, et une autre qui contiendra des boutons de suppression qui permettront à l'utilisateur de supprimer la ligne correspondant au bouton. L'utilisateur peut ajouter des lignes à la table en remplissant une zone de texte avec le nom du film, et en sélectionnant un genre dans un menu déroulant, puis en appuyant sur un bouton "Ajouter". Les boutons "Ajouter" et "Supprimer" sont le seul moyen par lequel l'utilisateur peut modifier la table.Création de tables HTML modifiables avec Django

Existe-t-il des raccourcis Django pour créer une telle table modifiable? J'ai pensé que cela pourrait être quelque chose qui convient aux formsets, mais je n'arrive pas à comprendre comment le faire. Aussi, il a été difficile de google "tables Django" comme les résultats semblent être sur les tables de base de données.

C'est le modèle que je suis en train d'utiliser actuellement:

class MovieList(models.Model): 
    user = models.ForeignKey(User) 
    movie = models.ForeignKey(Movie) 

class Movie(models.Model): 
    genre = models.ForeignKey(Genre) 
    name = models.CharField(max_length=300) 

class Genre(models.Model): 
    name = models.CharField(max_length=200) 

Toute aide serait très apprécié.

Répondre

0

Vous pouvez résoudre ce problème de plusieurs façons. Bien qu'il n'utilise pas vraiment un raccourci, je ne vois pas ce qui ne va pas dans le rendu de la table par une vue standard et je joins un formulaire pour y entrer de nouvelles entrées.

Si vous cherchez un raccourci et un peu plus de commodité django-tables pourrait être pour vous.

Bien sûr, vous pouvez utiliser jQuery pour rendre le processus encore plus dynamique afin que les gens puissent ajouter et supprimer des éléments sans recharger toute la page: Quelque chose similaire à dynamic inlines de Django dans l'admin. Si vous décidez de prendre cette route, vous devriez regarder de plus près un django-dynamic-formsets ou l'un des nombreux plugins de grille pour jQuery. jqGrid pour en nommer un.

+0

Merci arie. J'ai effectivement essayé d'utiliser jQuery afin que les utilisateurs puissent ajouter et supprimer plusieurs fois, et les données ne se synchronisent avec le serveur qu'une fois que l'utilisateur est prêt à enregistrer leurs modifications. Je n'étais pas au courant des django-dynamic-formsets. Je devrais regarder plus loin mais ce pourrait être le type de chose dont j'ai besoin. –

+0

Aurais-je raison de comprendre de votre part qu'il n'y a pas de raccourcis django pour cette situation? Je dois juste utiliser une vieille vue plaine avec une vieille forme simple? Ou est-ce qu'un formset est plus approprié? (Je ne suis toujours pas très clair sur ce qu'est un formset J'ai essayé d'en utiliser un et je l'ai rendu sous forme de tableau pour voir à quoi cela ressemblait, mais ce n'était pas ce à quoi je m'attendais. ou que formsets étaient juste inapproprié pour ce que je faisais) Pensées? –

+0

Hm ... "Un formset est une couche d'abstraction à travailler avec plusieurs formes sur la même page". Donc, si vous voulez rendre chaque entrée de votre table sous forme de formulaire (et y attacher un bouton de suppression), un formset serait le chemin à parcourir. Une alternative plus propre serait de rendre toute la table comme une forme et d'utiliser des cases à cocher (comme dans la liste des modifications de Django) pour cocher les entrées à supprimer dans un seul article. Voir par exemple cette discussion pour avoir une idée des avantages et des inconvénients: http://www.mail-archive.com/[email protected]/msg53075.html – arie

Questions connexes