0

Je voudrais implémenter des clés primaires multicolonnes dans django.Django - Clé primaire de colonnes multiples

J'ai essayé de mettre en œuvre un AutoSlugField() qui concaténer mes colonnes (valeurs ForeignKey/dates) ...

models.py:

class ProductProduction(models.Model): 
    enterprise = models.ForeignKey('Enterprise') 
    product = models.ForeignKey('Product') 
    date = models.DateTimeField() 
    count = models.IntegerField() 
    slug = AutoSlugField(populate_from= 
    lambda instance: instance.enterprise.username + '-' + instance.product.name + '-' + str(date)) 

Quand je passe les paramètres suivants :

- 'Megacorp','robot','09/10/2010',5 => slug = 'Megacorp-robot-09/10/2010' 
... the next time in pass the triplet, a new value has been inserted : 
- 'Megacorp','robot','09/10/2010',10 => slug = 'Megacorp-robot-09/10/2010' 
     => same slug value => insert ???? 

J'ai essayé d'ajouter le paramètre primary_key=True à la limace ... mais il crée une nouvelle instance avec un « -1 » « -2 ». .. et aucune mise à jour n'est faite ...

Ai-je raté quelque chose?

Merci,

Yoan

+0

Qu'est-ce 'AutoSlugField'? –

+0

@Daniel: Je pense que quelque chose de personnalisé, comme http://code.google.com/p/django-command-extensions/#Current_Database_Model_Field_Extensions ou http://djangosnippets.org/snippets/490/ –

+0

Un moyen de remplir automatiquement le champ de slug d'un autre champ, tel qu'un titre. Je crois que James Bennett l'a couvert dans son livre (Practical Django Projects), et il peut également être trouvé ici: http://djangosnippets.org/snippets/490/ –

Répondre