คำถามติดแท็ก django-rest-framework

ชุดเครื่องมือที่มีประสิทธิภาพและยืดหยุ่นสำหรับการสร้าง RESTful Web API Django เป็นเว็บเฟรมเวิร์ก Python ระดับสูงที่สนับสนุนการพัฒนาอย่างรวดเร็วและการออกแบบที่สะอาดและใช้งานได้จริง สร้างขึ้นโดยนักพัฒนาที่มีประสบการณ์ดูแลความยุ่งยากในการพัฒนาเว็บดังนั้นคุณจึงสามารถมุ่งเน้นไปที่การเขียนแอปของคุณโดยไม่จำเป็นต้องสร้างวงล้อใหม่ ฟรีและโอเพ่นซอร์ส

6
เฟรมเวิร์กส่วนที่เหลือ Django ใช้ serializers ที่แตกต่างกันใน ModelViewSet เดียวกัน
ฉันต้องการมอบ serializers ที่แตกต่างกันสองแบบและยังสามารถได้รับประโยชน์จากสิ่งอำนวยความสะดวกทั้งหมดของModelViewSet: เมื่อดูรายการวัตถุฉันต้องการให้แต่ละวัตถุมี URL ที่เปลี่ยนเส้นทางไปยังรายละเอียดและความสัมพันธ์อื่น ๆ จะปรากฏขึ้นโดยใช้__unicode __โมเดลเป้าหมาย ตัวอย่าง: { "url": "http://127.0.0.1:8000/database/gruppi/2/", "nome": "universitari", "descrizione": "unitn!", "creatore": "emilio", "accesso": "CHI", "membri": [ "emilio", "michele", "luisa", "ivan", "saverio" ] } เมื่อดูรายละเอียดของวัตถุฉันต้องการใช้ค่าเริ่มต้น HyperlinkedModelSerializer ตัวอย่าง: { "url": "http://127.0.0.1:8000/database/gruppi/2/", "nome": "universitari", "descrizione": "unitn!", "creatore": "http://127.0.0.1:8000/database/utenti/3/", "accesso": "CHI", "membri": [ "http://127.0.0.1:8000/database/utenti/3/", "http://127.0.0.1:8000/database/utenti/4/", "http://127.0.0.1:8000/database/utenti/5/", "http://127.0.0.1:8000/database/utenti/6/", …

2
เฟรมเวิร์ก Django REST: serializer ที่ไม่ใช่โมเดล
ฉันเริ่มต้นในกรอบงาน Django REST และต้องการคำแนะนำของคุณ ฉันกำลังพัฒนาบริการเว็บ บริการจะต้องจัดเตรียมส่วนต่อประสาน REST กับบริการอื่น ๆ ส่วนต่อประสาน REST ที่ฉันต้องนำไปใช้นั้นไม่ได้ทำงานกับแบบจำลองของฉันโดยตรง (ฉันหมายถึงการดำเนินการรับ, วาง, โพสต์, ลบ) แต่จะให้บริการอื่น ๆ ด้วยผลการคำนวณบางส่วน ตามคำขอของฉันบริการของฉันทำการคำนวณและส่งคืนผลลัพธ์กลับมา (ไม่เก็บผลลัพธ์ไว้ในฐานข้อมูลของตัวเอง) ด้านล่างนี้เป็นความเข้าใจของฉันเกี่ยวกับวิธีการนำอินเตอร์เฟส REST ไปใช้งาน ถูกต้องฉันถ้าฉันผิด สร้างคลาสที่ทำให้การคำนวณ ตั้งชื่อมันว่า 'CalcClass' CalcClass ใช้โมเดลในการทำงาน พารามิเตอร์ที่จำเป็นสำหรับการคำนวณจะถูกส่งไปยังตัวสร้าง ใช้การดำเนินการคำนวณ มันจะส่งคืนผลลัพธ์เป็น 'ResultClass' สร้าง ResultClass มาจากวัตถุ มันมีเพียงคุณสมบัติที่มีผลลัพธ์การคำนวณ ส่วนหนึ่งของผลการคำนวณจะแสดงเป็น tuple ของ tuples ดังที่ฉันเข้าใจแล้วจะเป็นการดีกว่าถ้าจะทำให้ซีเรียลไลซ์เซชั่นต่อไปใช้คลาสแยกต่างหากสำหรับผลลัพธ์เหล่านั้นและเพิ่มรายการของออบเจ็กต์ดังกล่าวไปยัง สร้าง Serializer สำหรับ ResultClass สืบทอดมาจาก serializers.Serializer ผลลัพธ์จากการคำนวณเป็นแบบอ่านอย่างเดียวดังนั้นให้ใช้คลาสส่วนใหญ่เป็นฟิลด์สำหรับฟิลด์แทนที่จะเป็นคลาสพิเศษเช่น …

7
django-Deliciouspie และ djangorestframework แตกต่างกันอย่างไร? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เหตุใดคุณจึงต้องใช้อันอื่นในการเปิดเผย API สำหรับแอพ Django ของคุณ http://pypi.python.org/pypi/djangorestframework/ http://pypi.python.org/pypi/django-tastypie

3
ฉันจะรวมฟิลด์โมเดลที่เกี่ยวข้องโดยใช้ Django Rest Framework ได้อย่างไร
สมมติว่าเรามีรูปแบบต่อไปนี้: class Classroom(models.Model): room_number = [....] class Teacher(models.Model): name = [...] tenure = [...] classroom = models.ForeignKey(Classroom) สมมติว่าแทนที่จะได้ผลลัพธ์เช่นนี้ต่อฟังก์ชัน ManyRelatedPrimaryKeyField: { "room_number": "42", "teachers": [ 27, 24, 7 ] }, มันจะคืนสิ่งที่มีการเป็นตัวแทนรูปแบบที่เกี่ยวข้องเช่น: { "room_number": "42", "teachers": [ { 'id':'27, 'name':'John', 'tenure':True }, { 'id':'24, 'name':'Sally', 'tenure':False }, ] }, เป็นไปได้ไหม ถ้าเป็นเช่นนั้นได้อย่างไร และนี่เป็นความคิดที่ไม่ดีเหรอ?

3
วิธีการปิดการใช้งานอินเทอร์เฟซแบบเรียกดูได้ของ django-rest-framework
ฉันใช้Django ส่วนที่เหลือกรอบ มันมีรูปแบบการจัดทำเอกสารด้วยตนเอง API ที่สามารถเรียกดูได้ของ Django ที่ยอดเยี่ยม แต่ทุกคนสามารถเยี่ยมชมหน้าเหล่านั้นและใช้อินเทอร์เฟซเพื่อเพิ่มข้อมูล (POST) ฉันจะปิดการใช้งานได้อย่างไร

7
Django REST Framework: การเพิ่มฟิลด์เพิ่มเติมใน ModelSerializer
ฉันต้องการทำให้เป็นอนุกรมรุ่น แต่ต้องการรวมเขตข้อมูลเพิ่มเติมที่ต้องทำการค้นหาฐานข้อมูลบางอย่างในอินสแตนซ์รูปแบบที่จะต่อเนื่อง: class FooSerializer(serializers.ModelSerializer): my_field = ... # result of some database queries on the input Foo object class Meta: model = Foo fields = ('id', 'name', 'myfield') วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร? ฉันเห็นว่าคุณสามารถส่งต่อใน "บริบท" พิเศษเพื่อ serializer เป็นคำตอบที่ถูกต้องในฟิลด์เพิ่มเติมในพจนานุกรมบริบทหรือไม่ ด้วยวิธีการที่ตรรกะของการได้รับข้อมูลที่ฉันต้องการจะไม่เป็นตนเองมีความหมาย serializer my_fieldซึ่งเหมาะเป็นอย่างยิ่งตั้งแต่ทุกกรณีจะต้องต่อเนื่อง ที่อื่นในเอกสาร DRF serializers มันบอกว่า "เขตข้อมูลพิเศษสามารถสอดคล้องกับคุณสมบัติใด ๆ หรือ callable ในรูปแบบ" ฟิลด์พิเศษที่ฉันกำลังพูดถึงคืออะไร ฉันควรกำหนดฟังก์ชั่นในการFooกำหนดรูปแบบของที่คืนmy_fieldค่าและใน serializer ฉันขอ …

7
ปิดใช้งานเมธอดใน ViewSet, django-rest-framework
ViewSets มีวิธีการอัตโนมัติในการแสดงรายการเรียกค้นสร้างอัปเดตลบ ... ฉันต้องการปิดการใช้งานบางส่วนและวิธีแก้ปัญหาที่ฉันคิดขึ้นมานั้นอาจไม่ใช่วิธีที่ดีนักเนื่องจากOPTIONSยังคงระบุว่าได้รับอนุญาต มีความคิดเกี่ยวกับวิธีการทำอย่างไรให้ถูกต้อง? class SampleViewSet(viewsets.ModelViewSet): queryset = api_models.Sample.objects.all() serializer_class = api_serializers.SampleSerializer def list(self, request): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) def create(self, request): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED)

5
จะรับ Request.User ใน Django-Rest-Framework serializer ได้อย่างไร?
เคยลองทำแบบนี้แล้วไม่ได้ผล class PostSerializer(serializers.ModelSerializer): class Meta: model = Post def save(self): user = self.context['request.user'] title = self.validated_data['title'] article = self.validated_data['article'] ฉันต้องการวิธีในการเข้าถึง request.user จากคลาส Serializer ของฉัน

5
TemplateDoesNotExist - ข้อผิดพลาด Django
ฉันใช้ Django Rest Framework และฉันยังคงได้รับข้อผิดพลาด Exception Type: TemplateDoesNotExist Exception Value: rest_framework/api.html ฉันไม่รู้ว่าฉันจะทำอะไรผิด นี่เป็นครั้งแรกที่ฉันทดลองใช้ REST Framework นี่คือรหัส views.py import socket, json from modules.data.models import * from modules.utils import * from rest_framework import status from rest_framework.decorators import api_view from rest_framework.response import Response from modules.actions.serializers import ActionSerializer @api_view(['POST']) @check_field_exists_wrapper("installation") def api_actions(request, format = …

9
การพิสูจน์ตัวตนโทเค็นสำหรับ RESTful API: ควรเปลี่ยนโทเค็นเป็นระยะหรือไม่
ฉันสร้างสงบ API กับ Django และDjango ส่วนที่เหลือกรอบ ในฐานะกลไกการพิสูจน์ตัวตนเราได้เลือก "Token Authentication" และฉันได้นำไปใช้แล้วตามเอกสารของ Django-REST-Framework คำถามคือแอปพลิเคชันควรต่ออายุ / เปลี่ยน Token เป็นระยะ ๆ หรือไม่และถ้าใช่ต้องทำอย่างไร มันควรจะเป็นแอพมือถือที่ต้องต่ออายุโทเค็นหรือเว็บแอพควรทำแบบอัตโนมัติ? การปฏิบัติที่ดีที่สุดคืออะไร? ใครมีประสบการณ์กับ Django REST Framework และสามารถแนะนำวิธีแก้ปัญหาทางเทคนิคได้บ้าง? (คำถามสุดท้ายมีลำดับความสำคัญต่ำกว่า)

13
Django Rest Framework ลบ csrf
ฉันรู้ว่ามีคำตอบเกี่ยวกับ Django Rest Framework แต่ฉันไม่พบวิธีแก้ปัญหาของฉัน ฉันมีแอปพลิเคชันที่มีการตรวจสอบสิทธิ์และฟังก์ชันบางอย่าง ฉันได้เพิ่มแอพใหม่ลงไปซึ่งใช้ Django Rest Framework ฉันต้องการใช้ไลบรารีในแอพนี้เท่านั้น นอกจากนี้ฉันต้องการส่งคำขอ POST และฉันจะได้รับคำตอบนี้เสมอ: { "detail": "CSRF Failed: CSRF token missing or incorrect." } ฉันมีรหัสต่อไปนี้: # urls.py from django.conf.urls import patterns, url urlpatterns = patterns( 'api.views', url(r'^object/$', views.Object.as_view()), ) # views.py from rest_framework.views import APIView from rest_framework.response import Response from …

8
ฉันจะเปิดใช้งาน CORS บน Django REST Framework ได้อย่างไร
ฉันจะเปิดใช้งาน CORS บน Django REST Framework ได้อย่างไร การอ้างอิงไม่ได้ช่วยอะไรมากนักมันบอกว่าฉันสามารถทำได้โดยมิดเดิลแวร์ แต่ฉันจะทำเช่นนั้นได้อย่างไร

3
รวมตัวกลาง (ผ่านโมเดล) ในการตอบสนองใน Django Rest Framework
ฉันมีคำถามเกี่ยวกับการจัดการกับ m2m / through models และการนำเสนอใน django rest framework ลองมาดูตัวอย่างคลาสสิก: Models.py: from django.db import models class Member(models.Model): name = models.CharField(max_length = 20) groups = models.ManyToManyField('Group', through = 'Membership') class Group(models.Model): name = models.CharField(max_length = 20) class Membership(models.Model): member = models.ForeignKey('Member') group = models.ForeignKey('Group') join_date = models.DateTimeField() serializers.py: imports... class MemberSerializer(ModelSerializer): …

12
Django Rest Framework - ไม่ได้ระบุข้อมูลรับรองการพิสูจน์ตัวตน
ฉันกำลังพัฒนา API โดยใช้ Django Rest Framework ฉันกำลังพยายามสร้างรายการหรือสร้างออบเจ็กต์ "Order" แต่เมื่อฉันพยายามเข้าถึงคอนโซลทำให้เกิดข้อผิดพลาดนี้: {"detail": "Authentication credentials were not provided."} มุมมอง: from django.shortcuts import render from rest_framework import viewsets from django.contrib.auth.models import User from rest_framework.renderers import JSONRenderer, YAMLRenderer from rest_framework.response import Response from rest_framework.views import APIView from order.models import * from API.serializers import * from …

17
Django Rest Framework - ไม่สามารถแก้ไข URL สำหรับความสัมพันธ์ที่เชื่อมโยงหลายมิติโดยใช้ชื่อมุมมอง“ user-detail”
ฉันกำลังสร้างโครงการใน Django Rest Framework ซึ่งผู้ใช้สามารถเข้าสู่ระบบเพื่อดูห้องเก็บไวน์ของพวกเขาได้ ModelViewSets ของฉันทำงานได้ดีและทันใดนั้นฉันก็ได้รับข้อผิดพลาดที่น่าผิดหวังนี้: ไม่สามารถแก้ไข URL สำหรับความสัมพันธ์แบบไฮเปอร์ลิงก์โดยใช้ชื่อมุมมอง "user-detail" คุณอาจไม่สามารถรวมโมเดลที่เกี่ยวข้องใน API ของคุณหรือกำหนดค่าlookup_fieldแอตทริบิวต์ในฟิลด์นี้ไม่ถูกต้อง การย้อนกลับแสดง: [12/Dec/2013 18:35:29] "GET /bottles/ HTTP/1.1" 500 76677 Internal Server Error: /bottles/ Traceback (most recent call last): File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/django/core/handlers/base.py", line 114, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/rest_framework/viewsets.py", line 78, in view return self.dispatch(request, …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.