2016-02-20 2 views
0

Я недавно играл с Джанго с моим TestApp и столкнулся с проблемой, что я никогда не сталкивался раньше, и я хотел бы просить некоторую помощь в моей проблемеДжанго: <DjangoObject> не JSON сериализации

У меня есть следующая модель:

class Courses_list(models.Model): 
    abbreviation = models.CharField(max_length=100, unique=True) 
    course = models.CharField(max_length=100, unique=True) 

class Job(models.Model): 
    job_Position = models.CharField(max_length=30, unique=True) 

    def __unicode__(self): 
     return self.job_Position 

class Job_Posting(models.Model): 
    fkey = models.OneToOneField("Job") 

class Educational_Requirement(models.Model): 
    fkey = models.ForeignKey('Job_Posting') 
    course = models.ForeignKey('Courses_list') 

И форма, которая выглядеть следующим образом

class CourseField(forms.ModelChoiceField): 
    def label_from_instance(self, obj): 
     return obj.Course 

class SomeForm(ModelForm): 
    course = CourseField(queryset=Educational_Requirement.objects.all()) 

После сохранения я получаю: <Job: Job_PositionValue> is not JSON serializable

Я спасаю данных формы по адресу:

class SomeModel(models.Model): 
    course = models.CharField(max_length=50) 

Что я делаю неправильно? Что означает ошибка в отношении моей проблемы? Большое спасибо.

EDIT

Здесь представлен TraceBack

Environment: 


Request Method: POST 
Request URL: http://localhost:8000/2/apply 

Django Version: 1.8.2 
Python Version: 2.7.10 
Installed Applications: 
('grappelli', 
'django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.sessions.models', 
'frontend', 
'file_maintenance', 
'reports', 
'transactions', 
'admin_reorder', 
'admin_notifications', 
'django_twilio') 
Installed Middleware: 
('django.contrib.sessions.middleware.SessionMiddleware', 
'django.contrib.auth.models.User', 
'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', 
'django.middleware.security.SecurityMiddleware', 
'admin_reorder.middleware.ModelAdminReorder') 


Traceback: 
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response 
    223.     response = middleware_method(request, response) 
File "C:\Python27\lib\site-packages\django\contrib\sessions\middleware.py" in process_response 
    50.       request.session.save() 
File "C:\Python27\lib\site-packages\django\contrib\sessions\backends\db.py" in save 
    58.   session_data=self.encode(self._get_session(no_load=must_create)), 
File "C:\Python27\lib\site-packages\django\contrib\sessions\backends\base.py" in encode 
    88.   serialized = self.serializer().dumps(session_dict) 
File "C:\Python27\lib\site-packages\django\core\signing.py" in dumps 
    90.   return json.dumps(obj, separators=(',', ':')).encode('latin-1') 
File "C:\Python27\lib\json\__init__.py" in dumps 
    250.   sort_keys=sort_keys, **kw).encode(obj) 
File "C:\Python27\lib\json\encoder.py" in encode 
    207.   chunks = self.iterencode(o, _one_shot=True) 
File "C:\Python27\lib\json\encoder.py" in iterencode 
    270.   return _iterencode(o, 0) 
File "C:\Python27\lib\json\encoder.py" in default 
    184.   raise TypeError(repr(o) + " is not JSON serializable") 

Exception Type: TypeError at /2/apply 
Exception Value: <Job: System Admin> is not JSON serializable 

EDIT 2

Это не имеет ничего общего с моим О.П., как я понятия не имею, что причиной его

Я нашел проблему, это было с моим request.session, я понятия не имею, у, но добавление str() со значением Я вставив сделал трюк: request.session['SessionName'] = str(myvalue)

Мои взгляды после исправления:

def save_page(request, job_id): 
    form = application_form(request.POST) 
    if request.method == 'POST': 
     cde = form.save(commit = False) 
     .... 
     request.session['SessionName'] = str(cde.SomeField) 
     cde.save() 
+1

Ошибка не исходит от этого кода, потому что здесь нет ничего, что связано с JSON. Пожалуйста, разместите фактический код и полную трассировку. –

+0

Я отправил свой полный след, я все еще пытаюсь найти источник ошибки, и я не могу вставить свои представления, поскольку он слишком длинный, извините за это –

ответ

0

Без вашего зрения кода, это трудно точно определить проблему. Однако ошибка довольно понятна. Попробуйте установить атрибуты объекта Django в словарь, а затем сериализуйте этот словарь.

+0

Я пытаюсь найти, какая часть моего представления вызывает потому что это появилось из ниоткуда, может ли это быть вызвано сессией? –

+1

Отслеживание, которое вы еще не опубликовали, покажет вам, в какой именно части зрения проблема. –

+0

Я обновил и отправил трассировку, я не могу вставить весь мой взгляд, поскольку слишком долго жаль об этом, я попытаюсь найти конкретное представление, которое вызывает ошибку. –