/ / Ako dosiahnuť, aby VIEW vracal serializované dáta? - django, chutný kúsok

Ako dosiahnuť, aby VIEW vrátil serializované údaje? - django, tastypie

V nasledujúcom príklade je adresa URL prepísaná, aby som mohol odovzdať niečo ako http://localhost:8000/api/v1/entry/1234/1233/?format=json, keď to odovzdám parametre WRAP VIEW, keď urobím self.create_response (request, data), prehliadač zobrazí iba niečo ako

api.Vstup do objektu na 0x2e27a50

v prehliadači sa polia nebudú serializovať: Poznámka: V tejto fáze ModelResource nepotrebujem. Ako môžem vytvoriť vlastné zobrazenie dispatch_data tak, aby vrátilo údaje ako obj_get a get_object_list? Nasledujúci text je problematický:

#Object class
Class Entry(object)
name = ""


#Resource class
class EntryResource(Resource):
name = fields.CharField(attribute = "name")

class Meta:
resource_name = "entry"
object_class = Entry
include_resource_uri = False
authentication = Authentication()
authorization = Authorization()
serializer = Serializer()

def override_urls(self):
return [url(r"^(?P<resource_name>%s)/(?P<p1>[d]{4})/(?P<p2>[d]{4})%s$" % (self._meta.resource_name, trailing_slash()), self.wrap_view("dispatch_data"),name="api_dispatch_data"),]

def dispatch_data(self, request, **kwargs):
p1 = kwargs["p1"] #params can be retrieved here
p1 = kwargs["p2"]
info = Entry()
info.name = p1 #just example
response = {1:info}
return info.values()
#Above results in ERROR, it will say Entry object has no attribute "has_header"
#changing to self.create_response(request, info) will not serialize the fields



#urls.py
api = Api(api_name="v1")
api.register(EntryResource())

urlpatterns = patterns("",
url(r"^api/", include(api.urls)),
)

odpovede:

0 pre odpoveď č. 1

Myslím, že Tastypie Používanie nástroja Tastypie s inými zdrojmi údajov ako ORM má všetky potrebné informácie.

Tieto metódy by ste mali v zásade implementovaťzodpovedný za vrátenie objektov (a / alebo vytváranie, mazanie atď., ak ich potrebujete). Ak nemusíte upravovať, čo robí, nemusíte sa dotýkať „odeslať ()“.

Závisí to od vašich potrieb, ale ak chcete, aby sa zdroj choval, akoby mal obj_get a obj_get_list, musíte ich implementovať. Príklad, ktorý som spomenul, je celkom dobrý a mal by vás dostať ...