HTML输入当前不支持Django rest框架列表

时间:2018-09-23 17:12:30

标签: python django

这是我的模型。py

 {
       "attr" : { "id" : "li.node.id1" },
       "data" : {
                   "title" : "Long format demo",
                    "attr" : { "href" : "#" }
                }
    }

这是我的seralizers.py

from __future__ import unicode_literals
from django.db import models

class User(models.Model):
    name = models.CharField(max_length=200)
    company_name = models.ForeignKey('Company',on_delete=models.CASCADE,related_name='user')

    def __str__(self):
        return self.name

class Company(models.Model):
    name = models.CharField(max_length=200)
    phone_number = models.IntegerField(null=True,blank=True)

    def __str__(self):
        return self.name

class Catalog(models.Model):
    name = models.CharField(max_length=200)
    no_of_pcs = models.IntegerField(null=True,blank=True)
    per_piece_price = models.DecimalField(null=True,blank=True,max_digits=10,decimal_places=2)
    company_name = models.ForeignKey(Company,on_delete=models.CASCADE,related_name='catalog')

    def __str__(self):
        return self.name

这是我的view.py

from rest_framework import serializers
from .models import *
from django.db.models import Sum,Avg,Max,Min,Count,F,Q

class CatalogSerializer(serializers.HyperlinkedModelSerializer):
    dynamic_data = serializers.SerializerMethodField()
    class Meta:
        model = Catalog
        fields = '__all__'

    def get_dynamic_data(self, obj):
        totalpieces = Catalog.objects.all().aggregate(total_pieces=Count('no_of_pcs'))
        totalprice = Catalog.objects.all().aggregate(total_price=Sum('per_piece_price'))
        return totalprice,totalpieces


class UserSerializer(serializers.ModelSerializer):
    name = serializers.StringRelatedField()
    company_name = serializers.StringRelatedField()
    class Meta:
        model = User
        fields = '__all__'

class CatalogData(serializers.ModelSerializer):
    class Meta:
        model = Catalog
        fields = ('name', 'no_of_pcs', 'per_piece_price')


class CompanySerializer(serializers.ModelSerializer):
    name = serializers.StringRelatedField()
    catalog = CatalogData(many=True)
    user = UserSerializer(many=True)
    class Meta:
        model = Company
        fields = ('name', 'phone_number', 'catalog','user')

这是我的urls.py

from __future__ import unicode_literals
from django.http import HttpResponse
from .models import *
import json
from django.http import JsonResponse, HttpResponse

from .serializers import *
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from rest_framework import viewsets


class CatalogView(viewsets.ModelViewSet):
    queryset =  Catalog.objects.select_related('company_name')
    serializer_class = CatalogSerializer

class CompanyView(viewsets.ModelViewSet):
    queryset =  Company.objects.all()
    serializer_class = CompanySerializer

class UserView(viewsets.ModelViewSet):
    queryset =  User.objects.all()
    serializer_class = UserSerializer

我要去的时候:

http://127.0.0.1:8000/companies/

我获得了正确的API,但是在其下方显示了from django.conf.urls import url, include from django.contrib import admin from api import views # from v2 import views from rest_framework.urlpatterns import format_suffix_patterns from rest_framework import routers router = routers.DefaultRouter() router.register('catalogs',views.CatalogView) router.register('companies',views.CompanyView) router.register('users',views.UserView) urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'', include(router.urls)), ] ,因此我无法添加数据。

坦克

enter image description here

请检查上面的链接以获取屏幕截图

0 个答案:

没有答案