Mon modèle:Concurrency dans django admin Modifier la
class Order(models.Model):
property_a = models.CharField()
property_b = models.CharField()
property_c = models.CharField()
De nombreux utilisateurs auront accès à un enregistrement donné dans un court laps de temps par page changement d'administration, donc j'ai des problèmes de concurrence:
utilisateur 1 et 2 ouvrez la page de modification en même temps. Supposons que toutes les valeurs sont vides lors du chargement de la page. L'utilisateur 1 définit property_a sur "a", et property_b sur "b", puis enregistre. Une seconde plus tard, si l'utilisateur 2 modifie la propriété b et c puis l'enregistre, il écrasera toutes les valeurs de l'utilisateur 1. Dans ce cas, property_a retournera à vide et b et c sera tout ce que l'utilisateur 2 a ajouté.
J'ai besoin de recommandations sur la façon de gérer cela. Si je dois avoir un champ de version dans le modèle, comment puis-je le transmettre à l'administrateur, où puis-je faire la vérification pour informer élégamment l'utilisateur que ses modifications ne peuvent pas être enregistrées parce qu'un autre utilisateur a modifié l'enregistrement? Existe-t-il un moyen plus transparent que de simplement renvoyer une erreur à l'utilisateur?
est un paramètre dans lequel un ordre est manipulé par plusieurs utilisateurs dans un court laps de temps. donc parfois leurs temps d'édition se chevauchent sans qu'ils se rendent compte. Les champs du modèle de commande ne peuvent pas vraiment être séparés en d'autres modèles (c'est-à-dire toutes les informations un-à-un). Si c'est de cela que vous parlez? – rsp
@rsp: "manipulé par plus d'un utilisateur" est incompréhensible pour moi. Sérieusement. Je n'ai que 30 ans d'expérience et je n'ai jamais rien vu de tel. Donc je suis sûr que c'est mon expérience limitée qui me gêne. Veuillez METTRE à JOUR la question en expliquant comment cela peut se produire et comment il ne s'agit pas de deux rangées d'informations séparées avec des liens FK avec un «Ordre» commun. –
Je ne sais pas si j'ai trouvé impoli/inapproprié/pas clair dans ma question/commentaire. Si oui, je m'excuse, honnêtement, je ne voulais pas être. Cela étant dit, j'apprécie le conseil/l'expertise puisque je suis novice mais pas l'attitude. Si vous êtes encore prêt à m'aider: mon modèle a un champ de notes diverses. Une commande peut être éditée par plusieurs utilisateurs sur plusieurs ordinateurs en l'espace d'environ une heure. Je pourrais leur donner des champs de notes séparés pour éviter ce problème de concurrence mais ses informations vraiment diverses qui, je pense, appartiennent à un domaine. S'il vous plaît laissez-moi savoir si je n'ai pas bien expliqué. – rsp