Bonjour

j'ai cree une base de donnees materiaux dont voici le model


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Category(models.Model):
    name = models.CharField(_('name'), max_length=50)
    slug = models.SlugField()
    description = models.TextField(_('description'), blank=True)
 
    parent = models.ForeignKey('self', null=True, blank=True,
                               verbose_name=_('parent category'),
                               related_name='children')
 
 
class Material(models.Model):
    name = models.CharField(_('name'), max_length=50)
    description = models.TextField(_('description'), blank=True)
    slug = models.SlugField()
    category = models.ForeignKey(Category, verbose_name=_('category'))
    created = models.DateField(_("Date de creation"), auto_now_add=True)

je veux pouvoir acceder

soit a l'ensemble des materiaux de la base
soit a une categorie particuliere

j'utilise pour ceci un menu deroulant pour aller selectionner des options de filtrage

ce menu appelle une fonction (specifique du filtrage) du module views

si je veux visualiser l'ensemble des materiaux

dans ma fonction, je declare

data1 = Material.objects.all()

et si je veux acceder a la categorie 'ceramique', je declare

data1= Material.objects.filter(category__name= 'ceramique')


y a t 'il moyen d'acceder a un filtrage particulier sans etre obligé de declarer explicitement la categorie ??
(et de faire appel a une fonction differente pour chaque filtrage)