Thanks for that fast response.
If the cause of the problem is passing "contenido.id" as int, then the 
error is even more weird, because my app uses URL like that in several 
situations, for example:

URL('contenido', 'editar', args=contenido.id)
URL('categoria', 'editar', args=categoria.id)
URL('default', 'index', args=[categoria.id, page_number])


Now that I think it, the error that I reported happens within the scheduler 
environment.
Could that difference be the reason? Well, even in that case, it wouldn't 
explain why it works ok in other apps.




El lunes, 3 de septiembre de 2018, 1:25:19 (UTC-3), fiubarc escribió:
>
> Hello, 
>
> I think it's more a matter of python language, contenido.id is long type then 
> self.args[0] in 'any string'  raise an exception because, as the message says 
> :
>
> 'in ' requires string as left operand, not long
>
> You can do args=['%s' % contenido.id, .... or args=[str(contenido.id), 
> .... 
>
> Dont know why in others installed apps works, is really weird
>
>
>
> El lunes, 3 de septiembre de 2018, 0:54:32 (UTC-3), Lisandro escribió:
>>
>> I have the same app installed several times within a web2py instance 
>> (running version 2.16.1-stable+timestamp.2017.11.14.05.54.25).
>>
>> In some of them, this sentence:
>>
>> URL(c='default', f=f, args=[contenido.id, contenido.slug], extension='', 
>> scheme=True, host=current.CONFIG.dominio)
>>
>> ... throws this traceback error:
>>
>> Traceback (most recent call last): 
>> File "/var/www/medios/gluon/scheduler.py", line 501, in executor result = 
>> dumps(_function(*args, **vars)) 
>> File "applications/pescaregional/compiled/models.db.py", line 519, in 
>> newsletter 
>> File "applications/pescaregional/modules/globales.py", line 938, in 
>> enviar_newsletter 'url_noticia': noticia.url() + utm_vars, 
>> File "/var/www/medios/gluon/packages/dal/pydal/objects.py", line 2407, in 
>> __call__ return self.method(self.row, *args, **kwargs) 
>> File "applications/pescaregional/compiled/models.db.py", line 295, in 
>> File "applications/pescaregional/modules/virtual_methods.py", line 248, 
>> in contenido_url return URL(c='default', f=f, args=[contenido.id, 
>> contenido.slug], extension='', scheme=True, host=current.CONFIG.dominio) 
>> if f else None 
>> File "/var/www/medios/gluon/html.py", line 391, in URL args, other, 
>> scheme, host, port, language=language) 
>> File "/var/www/medios/gluon/rewrite.py", line 197, in url_out function, 
>> args, other, scheme, host, port, language) 
>> File "/var/www/medios/gluon/rewrite.py", line 1366, in map_url_out return 
>> map.acf() 
>> File "/var/www/medios/gluon/rewrite.py", line 1292, in acf self.omit_acf
>> () # try to omit a/c/f 
>> File "/var/www/medios/gluon/rewrite.py", line 1241, in omit_acf if self.
>> args[0] in self.functions or self.args[0] in self.controllers or self.
>> args[0] in applications: TypeError: 'in ' requires string as left operand
>> , not long
>>
>>
>>
>> The problem is solved changing the sentence with this:
>>
>> URL(c='default', f=f, args=['%s' % contenido.id, '%s' % contenido.slug], 
>> extension='', scheme=True, host=current.CONFIG.dominio)
>>
>> ... notice that the args are converted to strings.
>>
>> But the weird part is that *the error only happens in some of the 
>> installed apps; and, remember, it's the exact same app installed several 
>> times*.
>>
>> First I thought it had something to do with the values stored at 
>> "contenido", which is a row from a table. But it happens with any row.
>>
>> I'm using PostgreSQL 9.3. I've checked the databases' enconding and they 
>> all have the same one. I also checked the "contenido" table definition in a 
>> couple of dbs (one corresponding to an app that presents the error, and 
>> other that doesn't), and they are exactly the same.
>>
>> What could be the difference that makes gluon/rewrite.py throw the error 
>> in some of the apps?
>>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to