Django:AttributeError:类型对象'GroupModel'没有属性'_meta'。

3

我是一名新手,正在学习Django。在我的代码中,当我使用Postman进行请求时,出现了以下错误,请问有人能帮我看看我的代码哪里出了问题吗?

模型:

from django.db import models

class GroupModel(object):
    title=models.CharField(max_length=20)
    description = models.CharField()

    class Meta:
        db_table = 'group'
    def __str__(self):
        return self

序列化器:
from rest_framework import serializers
from .models import GroupModel

class GroupSerializer(serializers.ModelSerializer):
    print('hello4')
    class Meta:
        model = GroupModel
        fields = '__all__'

视图:

from django.shortcuts import render
from django.http import HttpResponse, JsonResponse
from .serializer import GroupSerializer
from .models import GroupModel
from rest_framework.decorators import api_view
from rest_framework import status
@api_view(['POST'])
def InsetGroup(request):
     data = GroupSerializer(data = request.data)

     if request.method == 'POST':
         if data.is_valid():
             data.save()
             return JsonResponse('saved was saccessfull', safe = False)
         return JsonResponse(data.errors, status = status.HTTP_400_BAD_REQUEST, safe = False)

你的 GroupModel 没有继承自 Model - Willem Van Onsem
2个回答

3
Django中的模型需要是Model类[Django-doc]的子类:
from django.db import models

class GroupModel(<b>models.Model</b>):
    title=models.CharField(max_length=20)
    description = models.CharField()

    def __str__(self):
        return <b>self.title</b>

    class Meta:
        db_table = 'group'

你的__str__方法也应该返回一个字符串,例如self.title,而不是self,因为那是一个GroupModel对象,而不是字符串。

1
提示:为了改进您的代码,您不需要检查“is_valid()”是否为真。您可以使用“is_valid(raise_exception=True)”自动引发400错误,如果有问题的话。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接