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.