Je rencontre des problèmes pour transmettre des valeurs d'objet de modèle via un modèle d'URL. L'URL:Django: Passer des valeurs d'objet de modèle à travers l'URL
url(r'^cities/(?P<city>\w+)/$', 'city_firm', name='city_firm'),
Dans le modèle (à partir de la page d'index) J'ai:
<a href="{% url city_firm city %}">{{ city }}</a>
Ceci est dans une boucle for
.
La vue est connexe:
def city_firm(request, city):
city1 = Cities.objects.get(city=city)
cityf = city1.Firms.all()
return render_to_response('cityfirm.html', {'cityf': cityf})
Les deux modèles (Cities
, Firms
) sont en relation plusieurs à plusieurs. Je continue d'obtenir TemplateSyntaxError
à l'index (NoReverseMatch while rendering: Reverse for 'city_firm' with arguments '(<Cities: >,)' and keyword arguments '{}' not found
). Dans la balise de lien de modèle j'ai essayé: {% url city_firm city=city %}
, {% url city_firm city=cities.city %}
. Rien n'a changé. La partie urlconf
semble correcte. Le problème semble être dans le modèle. Peut-être qu'il y a un problème avec les valeurs de chaîne de l'objet car elles ne sont pas en anglais. Mais j'ai pris plusieurs précautions pour éviter cela. Il y a peut-être quelque chose qui ne va pas avec la vue, mais l'erreur indique le modèle. Des idées?
Solution:
Merci à tous! Finalement, j'ai compris. Le problème était simple: j'essayais d'envoyer des noms d'attributs d'objets via l'URL, qui contenait des espaces et des caractères non-anglais. Pour le réparer, j'ai dû modifier mes modèles.
essayer d'envoyer 'city.city' au lieu de' city' – Natim
Si vous avez résolu votre problème, fournir comme une réponse et accepter –