Rustango docs
← Concepts

Modèles

Mappez une structure à une table avec #[derive(Model)].

La dérivation Model

#[derive(Model)] associe une structure à une table et expose un queryset typé via Model::objects(). Les attributs de champ définissent les contraintes de colonne.

#[derive(Model)]
#[rustango(table = "author", display = "name")]
pub struct Author {
    #[rustango(primary_key)]
    pub id: Auto<i64>,
    #[rustango(max_length = 120, index)]
    pub name: String,
    #[rustango(auto_now_add)]
    pub created_at: Auto<chrono::DateTime<chrono::Utc>>,
}
Changed in 0.41

Les querysets ont gagné select_related / prefetch_related pour un chargement de relations sans N+1.

Générer les migrations

Après avoir modifié un modèle, lancez cargo run -- makemigrations ; le diff est écrit sous forme d'instantané JSON que vous versionnez avec le code.

Clés étrangères

Déclarez une relation avec #[rustango(fk = "...", on = "id")] et chargez-la de façon anticipée avec select_related.