Ceci est une question relativement rapide concernant la conception de schéma pour un projet Django. Fondamentalement, nous avons une série de rapports mensuels de différents départements qui sont regroupés dans un seul rapport avec de jolis graphiques (nous allons probablement utiliser l'API Google Visualization pour cela, mais je suis ouvert à d'autres suggestions, si vous pensez que quelque chose d'autre s'intègre bien avec Django).Rapports mensuels dans Django - Appliquer l'unicité au mois?
Chaque service est responsable de déposer ses propres chiffres pour sa partie du rapport. Nous allons probablement utiliser l'admin Django pour entrer dans ces chiffres, car il ne doit pas être joli, c'est juste pour obtenir des chiffres dans chaque mois.
Je suppose que le meilleur moyen est d'avoir un modèle de rapport abstrait, hériter de ceci pour chaque département ayant un modèle séparé, avec des champs spécifiques surchargés, et avoir un champ Date sur chacun d'eux. Avoir un mois en tant qu'objet parent, et en descendre les rapports - c'est une approche stupide, n'est-ce pas?
Aussi, quelle est la meilleure façon de l'appliquer afin qu'ils ne puissent soumettre leurs chiffres qu'une seule fois? J'aurais pu avoir un champ mois et année séparé, je suppose et imposer un caractère unique sur ce terrain, mais j'espérais utiliser le DateField intégré, mais quelle est la meilleure façon d'imposer le caractère unique du mois et de l'année? Dois-je utiliser la nouvelle fonctionnalité de validation de modèle pour cela?
Cheers, Victor
Ceci semble être complètement incorrect. En utilisant le backend sqlite3 au moins, 'unique_for_month' fait juste référence à ceci: un mois unique. Comme dans, mettre en deux Decembers et le site admin crache à vous, indépendamment de leurs différentes années. – Jjed
De la documentation: "* Par exemple, si vous avez un titre de champ qui a' unique_for_date = "pub_date" ', alors Django n'autorisera pas l'entrée de deux enregistrements avec les mêmes' title' et 'pub_date'. imposé au niveau de la forme d'administration de Django mais pas au niveau de la base de données. * "Donc, par documentation, cela devrait fonctionner comme prévu, ou peut-être vous attendiez-vous à quelque chose d'autre? –