Y a-t-il une autre manière Regex (ou d'une autre manière) pour s'assurer qu'un champ de classe modèle serait unique? (Ce n'est pas une clé, ni du moins non déclaré comme une clé, est Shoulb Soyez un simple charfield) p>
merci p>
3 Réponses :
La manière habituelle de faire un seul champ unique est d'utiliser le Unique code>
Argument au constructeur de terrain. P>
Mais pourquoi ne fonctionne pas quand j'ajouterais unique = true code> dans
user_id = modèles.charfield (max_length = 20, unique = true) code>?
Ce fil semble suggérer que l'unique ne peut être effectuée que lorsqu'une table est créée: Stackoverflow.com/questions/17627556/... Je n'ai pas personnellement testé pour voir si c'est vrai.
Si vous avez besoin de rendre cela unique sur plusieurs champs, regardez: Unique-ensemble P>
Il y a deux façons de le faire.
Le premier consiste à marquer la colonne entière comme Cette méthode est bonne lorsque vous souhaitez que toute votre colonne soit intrinsèquement unique, quelle que soit la situation. Ceci peut être utilisé pour Cependant, si la colonne ne peut pas être intrinsèquement unique mais Il doit être unique par rapport aux autres, vous devez utiliser la manière manuelle. P> unique code>. Par example:
Product_Name = Modèles.Charfield (max_length = 10, unique = true) code>
nom d'utilisateur code>,
id code>,
clé code> etc. P>
from django.core.exceptions import ObjectDoesNotExist
try:
n = WishList.objects.get(user=sample_user, product=sample_product)
# already exists
return False
except ObjectDoesNotExist:
# does not exist
wish_list = WishList(user=sample_user, product=sample_product)
wish_list.save()
return True