AttributeError: 'function' object has no attribute 'form_props'

393 views
Skip to first unread message

rajib prasad

unread,
Dec 18, 2021, 7:51:53 AM12/18/21
to oTree help & discussion
After running otree devserver, I am opening the local host in browser. Then when I am opening any one of demo players, I am getting this error.
I tried a lot but could not find any solution. Then I tried to write a simple code but could not get rid of the error. please help me to solve this issue.

otree devserver
Open your browser to http://localhost:8000/
To quit the server, press Control+C.

Exception in ASGI application
Traceback (most recent call last):
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/uvicorn/protocols/http/h11_impl.py", line 396, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
    return await self.app(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 26, in __call__
    await response(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/responses.py", line 224, in __call__
    await run_until_first_complete(
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/concurrency.py", line 24, in run_until_first_complete
    [task.result() for task in done]
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/concurrency.py", line 24, in <listcomp>
    [task.result() for task in done]
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/responses.py", line 216, in stream_response
    async for chunk in self.body_iterator:
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 56, in body_stream
    task.result()
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 38, in coro
    await self.app(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/errorpage.py", line 247, in __call__
    raise exc  # from None
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/errorpage.py", line 227, in __call__
    await self.app(scope, receive, _send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 25, in __call__
    response = await self.dispatch_func(request, self.call_next)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/middleware.py", line 42, in dispatch
    response = await call_next(request)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 45, in call_next
    task.result()
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 38, in coro
    await self.app(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/sessions.py", line 75, in __call__
    await self.app(scope, receive, send_wrapper)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/patch.py", line 41, in __call__
    raise exc  # from None
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/patch.py", line 29, in __call__
    await self.app(scope, receive, sender)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/routing.py", line 582, in __call__
    await route.handle(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/routing.py", line 243, in handle
    await self.app(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/views/abstract.py", line 111, in dispatch
    response = await run_in_threadpool(self.inner_dispatch, request)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/concurrency.py", line 40, in run_in_threadpool
    return await loop.run_in_executor(None, func, *args)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/views/abstract.py", line 418, in inner_dispatch
    return self.get()
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/views/abstract.py", line 477, in get
    form = self.get_form(instance=obj)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/views/abstract.py", line 514, in get_form
    form = get_form(instance, field_names=fields, view=self, formdata=formdata)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/forms/forms.py", line 88, in get_form
    FormClass = model_form(type(instance), obj=instance, only=field_names)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/forms/forms.py", line 24, in model_form
    field_props = getattr(ModelClass, name).form_props
AttributeError: 'function' object has no attribute 'form_props'
Exception in ASGI application
Traceback (most recent call last):
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/uvicorn/protocols/http/h11_impl.py", line 396, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
    return await self.app(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 26, in __call__
    await response(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/responses.py", line 224, in __call__
    await run_until_first_complete(
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/concurrency.py", line 24, in run_until_first_complete
    [task.result() for task in done]
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/concurrency.py", line 24, in <listcomp>
    [task.result() for task in done]
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/responses.py", line 216, in stream_response
    async for chunk in self.body_iterator:
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 56, in body_stream
    task.result()
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 38, in coro
    await self.app(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/errorpage.py", line 247, in __call__
    raise exc  # from None
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/errorpage.py", line 227, in __call__
    await self.app(scope, receive, _send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 25, in __call__
    response = await self.dispatch_func(request, self.call_next)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/middleware.py", line 42, in dispatch
    response = await call_next(request)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 45, in call_next
    task.result()
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/base.py", line 38, in coro
    await self.app(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/middleware/sessions.py", line 75, in __call__
    await self.app(scope, receive, send_wrapper)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/patch.py", line 41, in __call__
    raise exc  # from None
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/patch.py", line 29, in __call__
    await self.app(scope, receive, sender)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/routing.py", line 582, in __call__
    await route.handle(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/routing.py", line 243, in handle
    await self.app(scope, receive, send)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/views/abstract.py", line 111, in dispatch
    response = await run_in_threadpool(self.inner_dispatch, request)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/starlette/concurrency.py", line 40, in run_in_threadpool
    return await loop.run_in_executor(None, func, *args)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/views/abstract.py", line 418, in inner_dispatch
    return self.get()
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/views/abstract.py", line 477, in get
    form = self.get_form(instance=obj)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/views/abstract.py", line 514, in get_form
    form = get_form(instance, field_names=fields, view=self, formdata=formdata)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/forms/forms.py", line 88, in get_form
    FormClass = model_form(type(instance), obj=instance, only=field_names)
  File "/media/rajib/WORK/PycharmProjects/venv/lib/python3.8/site-packages/otree/forms/forms.py", line 24, in model_form
    field_props = getattr(ModelClass, name).form_props
AttributeError: 'function' object has no attribute 'form_props'

Chris @ oTree

unread,
Dec 18, 2021, 8:04:33 AM12/18/21
to oTree help & discussion
Without seeing your code, I would guess you have something in your form_fields that isn't an actual field.

Chris @ oTree

unread,
Dec 18, 2021, 8:28:23 AM12/18/21
to rajib prasad, ot...@googlegroups.com
StringField is missing parentheses. 

Sent from my phone

On Dec 18, 2021, at 8:11 AM, rajib prasad <rwho...@gmail.com> wrote:


this is my python code:

from otree.api import (
models, BaseConstants, BaseSubsession, BaseGroup, BasePlayer,
Currency as c, currency_range, Page, WaitPage
)

author = "rajib"
doc = """
Your app description
"""


class Constants(BaseConstants):
name_in_url = 'group_contest_app'
players_per_group = 3
num_rounds = 1


class Subsession(BaseSubsession):
pass


class Group(BaseGroup):
pass


class Player(BasePlayer):
Name_Initials_Consent = models.StringField
Email_Consent = models.StringField(blank=True)


# Contribution = models.IntegerField


# PAGES
class Introduction(Page):
form_model = 'player'
form_fields = ['Name_Initials_Consent', 'Email_Consent']


class ResultsWaitPage(WaitPage):
pass


class Results(Page):
pass


page_sequence = [Introduction]

--
You received this message because you are subscribed to a topic in the Google Groups "oTree help & discussion" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/otree/3AqK_8nLR9o/unsubscribe.
To unsubscribe from this group and all its topics, send an email to otree+un...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/otree/26d5cf34-6200-4e6c-aaef-b8ef06667a90n%40googlegroups.com.


--
RAJIB 


Jawaharlal Nehru University
New Delhi-67
contact no: 09868320368
Reply all
Reply to author
Forward
0 new messages