0

web.py フレームワークを使用して単純な Web アプリケーションを作成しています

ラジオボタンを作りたいので以下のコードを書きました

from web import form
from web.contrib.auth import DBAuth
import MySQLdb as mdb



render = web.template.render('templates/')

urls = (
  '/project_details',  'Project_Details',  
)

class Project_Details:

    project_details = form.Form( 
        form.Radio('Home Page'),
        form.Radio('Content'),
        form.Radio('Contact Us'),
        form.Radio('Sitemap'),
        )

    def GET(self):
        project_details = self.project_details()
        return render.projectdetails(project_details)  

URLでコードを実行すると、localhost:8080次のエラーが表示されます

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/web/application.py", line 237, in process
    return p(lambda: process(processors))
  File "/usr/lib/python2.7/site-packages/web/application.py", line 565, in processor
    h()
  File "/usr/lib/python2.7/site-packages/web/application.py", line 661, in __call__
    self.check(mod)
  File "/usr/lib/python2.7/site-packages/web/application.py", line 680, in check
    reload(mod)
  File "/home/local/user/python_webcode/index.py", line 68, in <module>
    class Project_Details:
  File "/home/local/user/python_webcode/index.py", line 72, in Project_Details
    form.Radio('password'),
TypeError: __init__() takes at least 3 arguments (2 given)

このエラーを回避するために、ラジオ ボタンに渡す必要があるパラメータ

4

2 に答える 2

1

sourceを見るとRadio、同じRadioオブジェクトが実際には複数の<input>要素を生成するため、すべてのアイテムに対して1 つのコンストラクターを使用する必要があるようです。

次のようなものを試してください::

project_details = form.Form( 
    form.Radio('details', ['Home Page', 'Content', 'Contact Us', 'Sitemap']),
    )
于 2012-10-10T11:58:41.757 に答える