Django Rest框架url过滤器,导入视图

2024-10-03 15:28:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前在编写Django-Rest框架时遇到了问题,它按url过滤数据。不知为什么,问题似乎出在我导入我的观点时。错误指向在中添加url过滤器之前运行良好的模型网址.py在

File "/home/jd_dhang/drf-demo/project/urls.py", line 5, in <module>
    from apps.core.views import SurgeryView
  File "/home/jd_dhang/drf-demo/project/apps/core/views.py", line 2, in <module>
    from .models import University, Student, SurgeryType
  File "/home/jd_dhang/drf-demo/project/apps/core/models.py", line 3, in <module>
    class University(models.Model):
  File "/home/jd_dhang/drf-demo/venv/lib/python3.5/site-packages/django/db/models/base.py", line 102, in __new__
    "INSTALLED_APPS." % (module, name)
RuntimeError: Model class apps.core.models.University doesn't declare an explicit app_label and isn't in an applica
tion in INSTALLED_APPS.

Django==1.9.13,djangorestframework==3.6.0

项目/网址.py在

^{pr2}$

项目/应用程序/核心/视图.py在

from rest_framework import viewsets
from .models import University, Student, SurgeryType
from .serializers import UniversitySerializer, StudentSerializer, SurgeryTypeSerializer

class StudentViewSet(viewsets.ModelViewSet):
...
class UniversityViewSet(viewsets.ModelViewSet):
...

class SurgeryView(viewsets.ModelViewSet): #(APIView):
    queryset = SurgeryType.objects.all()
    serializer_class = SurgeryTypeSerializer
    def get_queryset(self):
        queryset = SurgeryType.objects.all()
        surgery_type = self.kwargs['surgery_type']
        return SurgeryType.objects.filter(surgery_type=surgery_type)

如果有帮助的话,这是我的模型

项目/应用程序/核心/模型.py在

from django.db import models

class University(models.Model):
    name = models.CharField(max_length=50)

    class Meta:
        verbose_name = "University"
        verbose_name_plural = "Universities"

    def __str__(self):
        return self.name

class Student(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    university = models.ForeignKey(University)

    class Meta:
        verbose_name = "Student"
        verbose_name_plural = "Students"

    def __str__(self):
        return '%s %s' % (self.first_name, self.last_name)

class SurgeryType(models.Model):
    surgery_type = models.CharField("surgery_type", max_length=200)
    sub_type = models.IntegerField(default=1)
    available = models.BooleanField()
    url = models.URLField(max_length=200, default='https://www.google.com')

    def __str__(self):
        return 'Type: ' + self.surgery_type + ' SubType : ' + str(self.sub_type)

谢谢你

项目/配置/基准.py在

ALLOWED_HOSTS = ['*']

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'core',
    'rest_framework',
    'rest_framework_swagger'
]

Tags: djangonameinfrompycoreimportself