Tôi có một đối tượng mô hình trong django như vậy ...ORA-01.861: đen không phù hợp với chuỗi định dạng khi thực hiện get mô hình đối tượng trong django
from django.db import models
class Person(models.Model):
employee_title = models.CharField(max_length=150)
pk_person_id = models.IntegerField(primary_key=True)
department_name = models.CharField(max_length=240)
cost_center = models.CharField(max_length=150)
user_name = models.CharField(max_length=100)
def __str__(self):
return self.user_name
class Meta:
managed = False
db_table = 'company_hr_idm_data_v'
và theo quan điểm của tôi, tôi đang làm một cách đơn giản nhận được trên đối tượng Person như vậy ...
testobj = Person.objects.using('oracle').get(pk=4)
mã lỗi ra với một DatabaseError
nói rằng
ORA-01.861: đen làm không phù hợp với định dạng chuỗi
Đây là stack trace tôi mã khi tôi đã chế độ gỡ lỗi của tôi thiết lập là true trong settings.py tôi
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/roles/testing
Django Version: 1.7.2
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'roles')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/adjeibad/.virtualenvs/wwtmlserver/entitlements/roles/views/Organization.py" in test
9. testobj = Person.objects.using('oracle').get(pk=4)
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site- packages/django/db/models/query.py" in get
351. num = len(clone)
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site-packages/django/db/models/query.py" in __len__
122. self._fetch_all()
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site-packages/django/db/models/query.py" in _fetch_all
966. self._result_cache = list(self.iterator())
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site-packages/django/db/models/query.py" in iterator
265. for row in compiler.results_iter():
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in results_iter
700. for rows in self.execute_sql(MULTI):
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
786. cursor.execute(sql, params)
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
81. return super(CursorDebugWrapper, self).execute(sql, params)
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
65. return self.cursor.execute(sql, params)
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site-packages/django/db/utils.py" in __exit__
94. six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
65. return self.cursor.execute(sql, params)
File "/Users/adjeibad/.virtualenvs/wwtmlserver/lib/python2.7/site- packages/django/db/backends/oracle/base.py" in execute
916. return self.cursor.execute(query, self._param_generator(params))
Exception Type: DatabaseError at /roles/testing
Exception Value: ORA-01861: literal does not match format string
Oh! cũng ở đây là truy vấn được tạo ...
SELECT * FROM (SELECT ROWNUM AS "_RN", "_SUB".* FROM (SELECT "COMPANY_HR_IDM_DATA_V"."EMPLOYEE_TITLE", "COMPANY_HR_IDM_DATA_V"."PK_PERSON_ID", "COMPANY_HR_IDM_DATA_V"."DEPARTMENT_NAME", "COMPANY_HR_IDM_DATA_V"."COST_CENTER", "COMPANY_HR_IDM_DATA_V"."USER_NAME" FROM "COMPANY_HR_IDM_DATA_V" WHERE "COMPANY_HR_IDM_DATA_V"."PK_PERSON_ID" = :arg0) "_SUB" WHERE ROWNUM <= 21) WHERE "_RN" > 0
Tôi đã cố gắng đưa nhiều thông tin nhất có thể, bất kỳ ai cũng có thể hướng dẫn tôi đi đúng hướng không?
Điều đó có cần phải là tuyên bố cần thực thi trước khi tôi truy xuất đối tượng không? Vé nói rằng họ gặp phải vấn đề khi làm việc với ngày tháng. Tôi không truy cập thông tin ngày tháng. Tôi nhận thấy rằng django chạy hai truy vấn mà họ đề cập đến trên ứng dụng khởi động. – Dennis
Bạn nói đúng, có vẻ như vé đó không thực sự liên quan. Tôi đã xóa nhận xét đó để ngăn chặn sự nhầm lẫn trong tương lai, mặc dù [có thể đây là lỗi trong Django] (https://docs.djangoproject.com/en/1.7/internals/contributing/bugs-and-features/#reporting- lỗi). –
có thể là bảng trong db đã được tạo ra và không phải do đồng bộ hóa mô hình – DevC