Résolue

Adapté cet article sur mon projet "LES REQUÊTES AJAX AVEC DJANGO"

# HTMX # Django # API

Bonjour !

Je viens de lire l'article "LES REQUÊTES AJAX AVEC DJANGO". Dans l'introduction tout me pense à croire que je puisse utiliser cette methode pour mon projet d'école. Si je peux avoir la confirmation pour que je puisse essayer d'adapté celui-ci a mon projet.
Voici un parti de mon fichier models.py :

class ProductMeat(models.Model):
    title = models.CharField(max_length=38, unique=True, verbose_name="Viande")
    slug = models.SlugField(max_length=38, unique=True, blank=True)
    price = models.FloatField(default=0.0, verbose_name='Prix')
    description = models.TextField(blank=True, verbose_name="Description")
    thumbnail = models.ImageField(upload_to="products", blank=True, null=True, verbose_name='Image produit')
    promo = models.BooleanField(default=False, verbose_name="Produit en promotion")
    percent = models.IntegerField(default=0, verbose_name='Pourcentage promotion')
    promo_date_end = models.DateField(blank=True, null=True, verbose_name='Date fin de promotion')

    class Meta:
        verbose_name = "Viande"

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super().save(*args, **kwargs)

class ProductVegetable(models.Model):
    title = models.CharField(max_length=38, unique=True, verbose_name="Légume")
    slug = models.SlugField(max_length=38, unique=True, blank=True)
    price = models.FloatField(default=0.0, verbose_name='Prix')
    description = models.TextField(blank=True, verbose_name="Description")
    thumbnail = models.ImageField(upload_to="products", blank=True, null=True, verbose_name='Image produit')
    promo = models.BooleanField(default=False, verbose_name="Produit en promotion")
    percent = models.IntegerField(default=0, verbose_name='Pourcentage promotion')
    promo_date_end = models.DateField(blank=True, null=True, verbose_name='Date fin de promotion')

    class Meta:
        verbose_name = "Légume"

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super().save(*args, **kwargs)

class ProductFish(models.Model):
    title = models.CharField(max_length=38, unique=True, verbose_name="Poisson")
    slug = models.SlugField(max_length=38, unique=True, blank=True)
    price = models.FloatField(default=0.0, verbose_name='Prix')
    description = models.TextField(blank=True, verbose_name="Description")
    thumbnail = models.ImageField(upload_to="products", blank=True, null=True, verbose_name='Image produit')
    promo = models.BooleanField(default=False, verbose_name="Produit en promotion")
    percent = models.IntegerField(default=0, verbose_name='Pourcentage promotion')
    promo_date_end = models.DateField(blank=True, null=True, verbose_name='Date fin de promotion')

    class Meta:
        verbose_name = "Poisson"

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super().save(*args, **kwargs)

J'ai plusieurs class et j'aurai donc plusieurs catégories. Dans ma page d'accueil tous les produits s'afficherons ( avec un rechargement HTMX infinite scroll quand j'aurai réussi à le mettre en pratique ). Mon menu navigation servira a trié dynamiquement mes produits sans recharger la page. Est-ce que l'API fetch peut être la solution ? Dans l'exemple de l'article je n'arrive pas visualisé si c'est la bonne solution.

Merci encore pour aide ! Docstring m'aide énormément.

PS : j'ai partagé Docstring avec toutes ma promo vous le mérité !

Bonne journée

Thibault houdon

Mentor

Salut Yann !

Je devrais probablement rajouter une petite partie à cet article parce que ce que tu décris peut être fait avec HTMX justement. En fait HTMX va te permettre de faire la même chose que tu ferais en JavaScript avec Fetch mais de façon beaucoup plus simple et avec beaucoup plus de flexibilité.

Donc tu peux essayer de le faire une première fois avec Fetch, ça ne peut pas faire de mal de comprendre comment fonctionnent les requêtes Ajax et d'expérimenter avec ça, et par la suite implémenter tout ça avec HTMX.

N'hésite pas une fois que tu es rendu là à nous demander de l'aide dans la communauté, la documentation de HTMX est un bon point de départ mais il y a pas mal de petites subtilités et tu iras beaucoup plus vite avec notre aide. J'utilise HTMX sur quasiment toutes les pages de Docstring donc je le maîtrise bien :)

Et merci pour tes bons mots, super content de voir que Docstring t'aide pour tes projets d'école et merci pour le bouche à oreille 🙏

Merci pour ton retour !

Bonne journée.

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.