【问题标题】:What would be the format of urls.py for class based views?基于类的视图的 urls.py 格式是什么?
【发布时间】:2017-12-29 09:31:18
【问题描述】:

我是 django 新手,所以我想知道如何为项目编写 urls.py。 我想为库存管理系统制作后端 api。 当我输入 localhost:8000/inventory_backend/dep/ 时,出现以下错误: **使用 mysite.urls 中定义的 URLconf,Django 按以下顺序尝试了这些 URL 模式: 当前路径inventory_backend/dep/与其中任何一个都不匹配。

我的 mysite/urls.py 代码**

   from django.conf.urls import include, url
  from django.contrib import admin



   urlpatterns =  [
              url(r'^inventory_backend/', include('inventory_backend.urls') 
   ),
               url(r'^admin/', admin.site.urls) ,
             ]

inventory_backend/urls.py:

 from inventory_backend.views import DepartmentsView,InventoriesView

 from rest_framework import routers

router = routers.SimpleRouter()

router.register(r'dep/',DepartmentsView )

router.register(r'inv/',InventoriesView )

 urlpatterns = router.urls

serializers.py

from rest_framework import serializers

from inventory_backend.models import Departments,Inventories


class DepartmentsSerializer(serializers.ModelSerializer):
class Meta:
    model : Departments
    fields: ('id','name')


 class InventoriesSerializer(serializers.ModelSerializer):
dept = DepartmentsSerializer(many=True)
class Meta:
    model : Inventories
    fields : ('id','name','description','dept')

models.py

from django.db import models


class Departments(models.Model):
name = models.CharField(max_length=200)

def __str__(self):
    return self.name


class Inventories(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=200)
dept = models.ManyToManyField(Departments)

def __str__(self):
    return self.name

views.py

from rest_framework import viewsets
from inventory_backend.models import Inventories,Departments
from inventory_backend.serializers import InventoriesSerializer, 
DepartmentsSerializer


class DepartmentsView(viewsets.ModelViewSet):
queryset = Departments.objects.all();
serializer_class = DepartmentsSerializer;



class InventoriesView(viewsets.ModelViewSet):
queryset = Inventories.objects.all();
serializer_class  = InventoriesSerializer;

【问题讨论】:

  • 添加您的inventory_backend 应用程序网址文件代码
  • 请发布一个最小、完整且可验证的示例

标签: django


【解决方案1】:

更改您的 inventory_backend.urls.py,

urlpatterns = [
    url(r'^', include(router.urls))
        ]

【讨论】:

    猜你喜欢
    • 2015-07-17
    • 2011-12-15
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 2013-03-15
    • 2014-06-17
    • 1970-01-01
    • 2018-11-18
    相关资源
    最近更新 更多