- leir,
Bonjour à tous,
je débute avec Django, et je ne comprends pas trop la relation susmentionnée. J'ai deux modèles dans un module, soit Exercise et Question. Une question peut appartenir à un exercice, qui peut avoir plusieurs questions. Voilà mes modèles :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Exercise(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, default=1) year_subject = models.CharField(max_length=255) theme = models.CharField(max_length=255) name = models.CharField(max_length=255, default='ExerciseXY') statement = models.CharField(max_length=255) source = models.CharField(max_length=255) def __str__(self): return self.name class Question(models.Model): exercise = models.ForeignKey(Exercise, on_delete=models.CASCADE) question_text = models.CharField(max_length=255) def __str__(self): return self.question_text |
J'ai créé une classe Inline pour pouvoir, si j'ai bien compris, afficher toutes les questions relatives à un exercice dans la vue Admin d'un exercice :
1 2 | class QuestionInline(admin.TabularInline): model = Question |
J'ai ensuite défini deux classes Admin, pour chacun des modèles, afin d'afficher les bons champs dans la vue admin :
1 2 3 4 5 6 7 8 9 | class QuestionAdmin(admin.ModelAdmin): list_display = ('exercise',) list_filter = ('exercise',) class ExerciseAdmin(admin.ModelAdmin): inlines = [QuestionInline,] list_display = ('name', 'year_subject', 'theme', 'statement', 'source', 'user', 'inlines') list_filter = ('user', 'year_subject', 'theme',) search_fields = ('questions__exercise',) |
J'obtiens alors l'erreur suivante :
1 2 | TypeError at /admin/exercises/exercise/ 'list' object is not callable |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 81 {% endif %} 82 {% endblock %} 83 84 <form id="changelist-form" method="post"{% if cl.formset.is_multipart %} enctype="multipart/form-data"{% endif %} novalidate>{% csrf_token %} 85 {% if cl.formset %} 86 <div>{{ cl.formset.management_form }}</div> 87 {% endif %} 88 89 {% block result_list %} 90 {% if action_form and actions_on_top and cl.show_admin_actions %}{% admin_actions %}{% endif %} 91 {% result_list cl %} 92 {% if action_form and actions_on_bottom and cl.show_admin_actions %}{% admin_actions %}{% endif %} 93 {% endblock %} 94 {% block pagination %}{% pagination cl %}{% endblock %} 95 </form> 96 </div> 97 </div> 98 {% endblock %} 99 |
Le bug étant situé à la ligne 91. Ce que je comprends, c'est que Django n'arrive pas à afficher le résultat, mais comment faire ?
Merci de votre aide
+0
-0