J'ai un problème unique de la façon dont il devrait être géré dans admin django.Meilleure façon de représenter plusieurs à plusieurs relation dans admin django
Je suit la structure des modèles ...
class Product(models.Model):
name = models.CharField(max_length = 100)
base_price = models.DecimalField(max_digits = 5, decimal_places = 2)
def __unicode__(self):
return self.name
class Country(models.Model):
name = models.CharField(max_length = 2)
base_price = models.DecimalField(max_digits = 5, decimal_places = 2)
def __unicode__(self):
return self.name
class CountryProduct(models.Model):
country = models.ForeignKey(Country)
product = models.ForeignKey(Product)
overriden_price = models.DecimalField(max_digits = 5, decimal_places = 2)
class Meta:
unique_together = (("country", "product"),)
Comme le montre ici, il y a beaucoup à plusieurs entre produits et pays .... Je veux fournir une interface d'administration pour le prix de base prioritaire pour le pays donné et produit.
Une option pour avoir ui comme suit, ici le tiret (-) représente le prix par défaut et la valeur en nombre représente le prix de remplacement pour le pays et le produit donnés.
countries -> | US | UK
products | |
---------------------------
Product1 | - | 10
Product2 | 5 | 7
Mais je ne sais pas comment faire ....
Je suis ouvert à examiner d'autres approches (y compris les changements dans la structure du modèle), ainsi que tant qu'il répond à l'exigence. .. Votre entrée de toute sorte sera certainement utile pour moi ...
Merci à l'avance :)
Ce n'est pas un design complet, je voulais juste simplifier la question et c'est la raison représentée de cette façon .... Et vous avez raison ce n'est pas une bonne idée de présenter la grille de cette façon, mais c'était juste l'une des options que j'avais ... –
Pourriez-vous élaborer sur l'élément 2: Dynamic par défaut? Cette question de «dérogations» est quelque chose que j'ai rencontré et que je ne me suis jamais senti à l'aise de mettre en œuvre. Existe-t-il des articles qui explorent le problème ('sql overrides' est trop général pour que vous puissiez l'utiliser). – Koobz
"Valeur par défaut dynamique" est simplement une valeur par défaut qui n'est pas définie de manière statique dans le modèle mais qui est chargée dynamiquement en fonction des données actuelles, de l'état de la transaction ou d'autre chose. C'est juste une valeur par défaut qui est chargée dynamiquement dans le formulaire lors de l'exécution. Lisez ceci: http://docs.djangoproject.com/en/dev/ref/forms/fields/#initial –