0
votes

Django: Problème comparant des chaînes dans le modèle

Je fais un simple {% si%} code> comparaison mais ne peut pas obtenir les chaînes à correspondre. XXX PRE>

J'ai vérifié les classes et: p>

demande.user.username code> est code>. p>

EMPRESA.Vendedor | StringFormat: "S " code> est code>. p>

i Imprimer un étui et: p>

demande.user.Ausser code> est mariano code>. p>

empresa.vancéor | stringformat: "s" code> est mariano code>. p> dans le modèle fort> p>

empresa.venecrodor code> est une clé étrangère de venduores.nombre code> p>

{% if empresa.vendedor|stringformat:"s" in request.user.username %}
{% if request.user.username in empresa.vendedor|stringformat:"s" %}
{% if request.user.username == empresa.vendedor %}
{% if empresa.vendedor == request.user %}


7 commentaires

Pourrait être le filtre de modèle causant le problème. Avez-vous essayé juste {% si demande.user.user.user == empresa.vancéor%}?


@Whodini oui je l'ai fait, j'ai juste oublié de l'inclure. J'ai mis à jour le message avec cette intention aussi.


Pourquoi fais-tu ça? Pourquoi pas {% si EMPRESA.VENDEDOR == Demande.User%} ?


@Danielrooseman qui ne fonctionne pas non plus


Montrez votre modèle EMPRESA.


@Danielroseman vient de mettre à jour le post


Essayez d'utiliser NOMBRE I.E EMPRESA.VENDEOR.NOMBRE.


3 Réponses :


0
votes

Avez-vous essayé

{% if requier.user.user.Asername == (empresa.vancieror | StringFormat: "s")%} ?

Bitwise 'ou' ( | ) a une priorité inférieure à celle == . Voir https://docs.python.org/3/reference/expressions .html # Opérateur-Precedence

OK, le langage de modèle de Django est donc pas python, et je ne trouve pas une bonne référence pour les expressions dans la langue du modèle. Désolé, rien à voir ici, passez à autre chose.


2 commentaires

Juste l'essayer. Je reçois un TemplesyntaxError ne pouvait pas analyser certains caractères .


Mince. Les expressions de modèle ne sont pas python et je n'ai pas de moyen de les tester où je suis et je ne trouve pas de bonne référence. Si je faisai, je me mettra à jour. Pardon.



0
votes

Que diriez-vous d'utiliser avec la directive code>? Je pense que le problème est que nous ne pouvons pas utiliser la directive sur les tuyaux dans des conditions.

{% with empresa.vendedor|stringformat:"s" as data %}
  {% if request.user.username == data %}
  // do something
  {% endif %}
{% endwith %}


0 commentaires

0
votes

J'ai découvert un typo que j'utilisais empresa.vancéor et il aurait dû être Vendedor en raison d'une base de données héritée. Désolé et merci à tous.


0 commentaires