1

django のピストンの構成で問題に直面しています。実行するモデル名を指定するたびに、以下のエラーが発生します。

RuntimeError at /en/vehicle/api/car.json

Circular reference detected while emitting response

Request Method:     GET
Request URL:    http://127.0.0.1:8000/en/vehicle/api/car.json
Django Version:     1.4.1
Exception Type:     RuntimeError
Exception Value:    

Circular reference detected while emitting response

Exception Location:     /Users/mo/Projects/pythonic/gar-env/lib/python2.7/site-packages/piston/emitters.py in _any, line 109
Python Executable:  /Users/mo/Projects/pythonic/gar-env/bin/python

以下は私のhandelrs.pyです

from piston.handler import BaseHandler
from piston.utils import rc, throttle, translate_mime
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
from django.core.urlresolvers import reverse
from django.db.models.loading import get_model
from models import (ModelLookUpI18n as ModelLookup, Image)
from forms import CarForm, ModelLookUpForm, ModelLookUpI18nForm
from django.http import HttpResponse
import logging, json, os
from piston.utils import validate
from django.conf import settings
from django.utils.translation import ugettext as _

class CarHandler(BaseHandler):
    """
    CarHandler

    """
    allowed_methods = ('GET', 'POST', 'PUT', 'DELETE')
    model           = Car
    fields          = ('id', 'model', 'description', 'primary_image', 'color', 'mileage', 'view_count', 'asking_price')


    def read(self, request):
        params = dict()
        params.update({'status' : self.model.STATUS_ACTIVE})

        return self.model.objects.filter(**params).order_by('created_at')

url.py でここに私のコードがあります

from django.conf.urls import *
from handlers import CarHandler
from piston.resource import Resource

car_resource            = Resource(CarHandler)
# API URL schema
urlpatterns += patterns('',
    # car API
    url(r'^api/car\.(?P<emitter_format>.+)',                        car_resource,  name='vehicle-api-car'),
)

実行時にエラーが発生します。問題の解決策が見つかりません。モデルとフィールドの属性を CarHandler クラスから削除して、それを機能させようとしました。実行時に get_model と load を使用するのにうんざりしていましたが、同じ実行時エラーが発生しました。

お知らせ下さい?

4

1 に答える 1

0

「モデル」は外部キー参照ですか? ピストンが出力に「モデル」を含めている可能性はありますか?それ自体が、含まれていたカーモデルへの参照を持っている可能性がありますか?

于 2012-11-10T08:46:20.340 に答える