芹菜:形式没有len()



我已经更新了我的python版本和芹菜版本,现在不可能从表单上创建任务:

  • python == 3.4。
  • django == 1.10.3
  • 芹菜== 4.0.0

我的观点:

class SignupBase(FormView):
    def get_form_class(self, **kwargs):        
        return SignupFormBase

    def form_valid(self, form): 
        user = User(username=generate_random_username())
        user.save()
        signuptask = signup_user.delay(username=user.username,form=form)

提交时的追溯:

Traceback:
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/django/core/handlers/exception.py” in inner
39.             response = get_response(request)
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/django/core/handlers/base.py” in _legacy_get_response
249.             response = self._get_response(request)
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/django/core/handlers/base.py” in _get_response
187.                 response = self.process_exception_by_middleware(e, request)
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/django/core/handlers/base.py” in _get_response
185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/django/views/generic/base.py” in view
68.             return self.dispatch(request, *args, **kwargs)
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/django/views/decorators/cache.py” in _wrapped_view_func
57.         response = view_func(request, *args, **kwargs)
File “./apps/signup/views.py” in dispatch
203.         return super(SignupBase, self).dispatch(request, *args, **kwargs)
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/django/views/generic/base.py” in dispatch
88.         return handler(request, *args, **kwargs)
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/django/views/generic/edit.py” in post
183.             return self.form_valid(form)
File “./apps/signup/views.py” in form_valid
448.         signuptask = signup_user_locally.delay(username=user.username, form=form)
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/celery/app/task.py” in delay
413.         return self.apply_async(args, kwargs)
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/celery/app/task.py” in apply_async
536.             **options
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/celery/app/base.py” in send_task
709.             root_id, parent_id, shadow, chain,
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/celery/app/amqp.py” in as_task_v2
335.             kwargsrepr = saferepr(kwargs, self.kwargsrepr_maxsize)
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/celery/utils/saferepr.py” in saferepr
74.         o, maxlen=maxlen, maxlevels=maxlevels, seen=seen
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/celery/utils/saferepr.py” in _saferepr
104.     for token, it in reprstream(stack, seen=seen, maxlevels=maxlevels):
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/celery/utils/saferepr.py” in reprstream
155.         for val in it:
File “/home/USER/Env/DOMAIN/lib/python3.4/site-packages/celery/utils/saferepr.py” in _chainlist
91.     size = len(it)
Exception Type: TypeError at /signup/ Exception Value: object of type ‘SignupFormBase’ has no len() Request information: USER: AnonymousUser
GET: No GET data
POST: last_name = ‘Testing’ mobilephone = ‘99999999’ csrfmiddlewaretoken = ‘ShNfv74MEpYdvtbsGcC5lxGIsuuHVz73DNrHqDjsjKtFoDNW4po50cdLF2OXfrJr’ email = ‘testing@test.com’ first_name = ‘Test’

我错过了一些新的芹菜吗?其他带有芹菜节拍的任务工作正常,只是这个任务不是。

尝试此

class SignupFormBaseWithLen(SignupFormBase):
    def __len__(self):
        return 10 #here you have to set which len you should pass

此方法是检查您传递给芹菜任务的参数大小

然后

class SignupBase(FormView):
    def get_form_class(self, **kwargs):        
        return SignupFormBaseWithLen

相关内容

  • 没有找到相关文章

最新更新