如何在Django中使用自定义模型?

时间:2017-11-15 13:59:52

标签: python django

遵循Django快速入门教程here,这一切都适用于我们的问题。

现在当我添加自定义APIView时,我开始遇到麻烦了。即我创建的自定义模型。

这是我的views.py

class ValuationDetails(APIView):

   def get(self, request, format=None):
       serializer = ValuationRequestSerializer(data=request.data)
       if serializer.is_valid():
           return Response('Valuation report', status=status.HTTP_201_CREATED)

这是我的ValuationRequestSerializer:

class ValuationRequestSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = ValuationRequest
        fields = ('street', 'number', 'latitude', 'longitude')

这是我的ValuationRequest:

from django.db import models

class ValuationRequest(models.Model):
    def __init__(self, street, number, latitude, longitude):
        self.street = street
        self.number = number
        self.latitude = latitude
        self.longitude = longitude

第一个例外是:

  

RuntimeError:模型类valuationservice.valproperty.model.val_models.ValuationRequest未在INSTALLED_APPS中的应用程序中声明显式的app_label并且不是。

然后我在setting.py INSTALLED_APPS中添加了一行

'valuationservice.valproperty.model.val_models'

之后的第二个例外是:

  

django.core.exceptions.AppRegistryNotReady:尚未加载应用。

我想有两个问题:

  1. 如何在Django中使用自定义模型?
  2. 抛出第一个例外,Django不喜欢什么?
  3. Python版本2.7.12

    谢谢!

1 个答案:

答案 0 :(得分:0)

您不应在模型类中定义__init__方法。

(如果你这样做,你应该总是使用super()来调用超类方法;但在这种情况下你根本不应该这样做。)