web2pyの新機能です。なぜコードがチケットを生成しているのかわかりません。Web2py 'Unique'制約がfalseに設定された後でも強制的に適用されています
私はjob_titleのために元々「一意」をtrueに設定していましたが、今の私のユースケースでは複製が許可される必要があります。私は 'unique'制約をfalseに変更しましたが、今度は複数の役職がチケットを生成します。
ここに私が得るチケットの例があります。
Ticket ID
70.214.83.98.2016-07-13.22-35-40.452ce905-fbd9-4ecb-b830-04be06fc0d7a
<class 'sqlite3.IntegrityError'> UNIQUE constraint failed: job.job_title
Version
web2py™ Version 2.14.5-stable+timestamp.2016.04.14.03.26.16
Python Python 2.7.6: /usr/local/bin/uwsgi (prefix: /usr)
トレースバック
Traceback (most recent call last):
File "/home/kramer52/web2py/gluon/restricted.py", line 227, in restricted
exec ccode in environment
File "/home/kramer52/web2py/applications/Jobs_test/controllers/appadmin.py", line 703, in <module>
File "/home/kramer52/web2py/gluon/globals.py", line 417, in <lambda>
self._caller = lambda f: f()
File "/home/kramer52/web2py/applications/Jobs_test/controllers/appadmin.py", line 151, in insert
if form.accepts(request.vars, session):
File "/home/kramer52/web2py/gluon/sqlhtml.py", line 1746, in accepts
self.vars.id = self.table.insert(**fields)
File "/home/kramer52/web2py/gluon/packages/dal/pydal/objects.py", line 726, in insert
ret = self._db._adapter.insert(self, self._listify(fields))
File "/home/kramer52/web2py/gluon/packages/dal/pydal/adapters/base.py", line 746, in insert
raise e
IntegrityError: UNIQUE constraint failed: job.job_title
そして、ここが私のテーブル定義である:
db.define_table('job',
Field('job_title', length=200, unique=False, requires=IS_NOT_EMPTY()),
Field('job_department', 'reference department'),
Field('job_flsa_status', requires=IS_IN_SET(['Exempt', 'Non-Exempt'], zero=None)),
Field('job_pay_type', requires=IS_IN_SET(['Hourly', 'Salaried'], zero=None)),
Field('job_salary_low', 'decimal(10,2)', label='Salary (low)'),
Field('job_salary_high', type='decimal(10,2)', label='Salary (High)'),
Field('job_summary', type='text'),
Field('job_years_requirement', 'integer', requires=IS_INT_IN_RANGE(0, 50), default=5, label='Years Required'),
Field('job_education_requirement', requires=IS_IN_SET(['Some HS', 'HS Diploma', 'Some College','Associates Degree','College Degree B.A.', 'College Degree B.S.', 'Masters Degree'], zero=None), label='Education'),
Field('job_education_requirement_required', 'boolean', default=False, label='Required?'),
auth.signature)
は以前、私はユニークな設定していた=のjob_titleと形式=のための真の '%(のjob_title)s' のジョブテーブル、私はそれ以来 'フォーマット'を削除しました
ご回答ありがとうございます。私はそれがMYSQLのデータベースであると述べたはずですが、私はテーブルを削除し、再作成してデータを挿入しました。常識ですが、とにかくありがとうございます。どのようにそれがMYSQLになることができるかわからないが、私はSQLのライトエラーを取得しています....それは困惑です。 –