J'ai une vue qui me permet de travailler avec deux modèles différents à la fois, grâce à la chaîne itertools. Je rends les instances des deux modèles chaînés à l'intérieur d'une table de mon modèle et j'ai besoin que les lignes de la table soient formatées différemment dans le cas où les instances proviennent d'un modèle plutôt que de l'autre. Donc, fondamentalement: je chaîne deux modèles et affiche leurs instances dans une table, et toutes les lignes de la table qui contiennent des instances du modèle A doivent être mises en forme avec un fond jaune et toutes les lignes contenant des instances du modèle B devrait avoir un fond bleu à la place.Chaining modèles Django: comment formater les résultats sur le modèle selon le modèle spécifique
est la vue:
class BaseView(generic.ListView):
template_name = 'base/base_list.html'
context_object_name = 'base_list'
def get_queryset(self):
queryset = Document.objects.order_by('due_date')
return queryset
def get_context_data(self, **kwargs):
context = super(BaseView, self).get_context_data(**kwargs)
context['object_list'] = sorted(
itertools.chain(Program.objects.all(), Document.objects.all()),
key=attrgetter('validity_date'),
reverse=True)
return context
Dans la logique, ce que je avais besoin dans le modèle serait quelque chose comme ceci:
if
object in object_list ***belongs*** to Program.objects.all()
(etc)
else
(etc)
La question est: comment dois-je exprimer que appartient? J'ai également regardé dans les balises de modèle mais n'ai pas pu trouver la bonne manière d'aller.
Merci d'avance.
Faites vos modèles ont des caractéristiques uniques d'identification? –
Non, ils partagent principalement les mêmes attributs (nom, description ...). – Giulia
Attendez, ils ont seulement un attribut complètement différent, puis-je l'utiliser? – Giulia