J'aimerais utiliser un numéro avec un point décimal dans un modèle de Django URL, mais je ne suis pas sûr que ce soit réellement possible (je ne suis pas un expert de regex).
Voici ce que je veux utiliser pour URL: P>
/item/value/0.01 /item/value/0.05
4 Réponses :
Je ne sais pas sur Django spécifiquement, mais cela devrait correspondre à l'URL:
r"^/item/value/(\d+\.\d+)$"
Si vous voulez avoir des intentes et flotte dans une URL i>, écrivez quelque chose comme ceci: r "^ / élément / valeur / (\ d + (?: \. \ D +)) $" / code>
+1 pour une réponse plus générique (non limitée aux numéros avec deux chiffres après décimal)
@Boldewyn ta solution ne fonctionne pas. Ni pour les intensors ni pour les flotteurs ... j'ai essayé de l'utiliser mais en vain
@ S.ali merci. Il y a un ? Code> manquant:
r "^ / élément / valeur / (\ d + (?: \. \ D +)?) $" Code> - pour les flotteurs qu'il aurait dû travailler avant, cependant.
Cela peut être quelque chose comme URL ne doit pas démarrer avec slash. p> dans les vues Vous pouvez avoir la fonction: p>
Veuillez ne pas utiliser un nu sauf: code> car cela mange toutes les erreurs, cachent souvent des bugs. Vous voulez probablement juste attraper
ValueError code> S (
à l'exception de ValueError: code>)
Si les valeurs à accepter ne sont que 0,01 $ ou 0,05 $, le motif de Harto peut être spécifié comme celui-ci:
r"^/item/value/(\d\.\d{2})$"
Merci, chaque message a ajouté un petit morceau de puzzle. Evgeny avait la balle magique.
# Make sure you have defined Item model (this is just an example) # You use your own model name from .models import Item def show_item(request, dollar): try: # Convert dollar(string) to dollar(float). # Which gets passed to show_item() if someone requests # URL patterns like /item/value/0.01, /item/value/1.22 etc. dollar = float(dollar); # Fetch item from Database using its dollar value # You may use your own strategy (it's mine) item = Item.objects.get(dollar=dollar); # Make sure you have show_item.html. # Pass item to show_item.html (Django pawered page) so that it could be # easily rendered using DTL (Django template language). return render(request, "show_item.html", {"item": item}); except: # Make sure you have error.html page (In case if there's an error) return render(request, "error.html", {});
Grand fan de celui-ci. Comment créer r "^ élément / valeur / (? P