Django-Rest-Framework错误:字段名称“ product_name”对模型“ Store”无效

问题描述

在我的Django Rest Framework API应用中,我试图在产品模型中添加字段“ product_name”,“ product_name”字段与 Store 模型无关如下所示:

Models.py

from django.db import models
# Create your models here.

class Store(models.Model):
    company_name=models.CharField(max_length=50)
    company_gst_no=models.CharField(max_length=200)
    
class Product(models.Model):
    company_name=models.ForeignKey(Store,on_delete=models.CASCADE)
    product_name=models.CharField(max_length=200,null=True)

class Purchase(models.Model):
    company_name=models.ForeignKey(Store,on_delete=models.CASCADE)
    p_n=models.ForeignKey(Product,on_delete=models.CASCADE)
    purchase_rate=models.IntegerField(null=False)
    purchase_quantity=models.IntegerField(null=False)

serializers.py

# api/serializers.py
from rest_framework import serializers
from .models import *

class StoreSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Store
        fields = ['url','id','company_name','company_gst_no']

class ProductSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Product
        fields = ['url','product_name']

class PurchaseSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Purchase
        fields = ['url','company_name']

views.py

from django.shortcuts import render
from rest_framework import generics,viewsets
from .models import *
from .serializers import *
# Create your views here.

class StoreList(viewsets.ModelViewSet):
    queryset = Store.objects.all()
    serializer_class = StoreSerializer

class Product(viewsets.ModelViewSet):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer

class Purchase(viewsets.ModelViewSet):
    queryset = Purchase.objects.all()
    serializer_class = PurchaseSerializer

错误是“在/ product /上配置不正确”“字段名称product_name对型号Store无效。”

解决方法

您是否尝试过使用其他名称?例如:

name=models.CharField(max_length=200,null=True)

如果收到相同的错误,是因为不是该字段的问题。

在这种情况下...添加此字段后您是否应用了迁移?

python manage.py makemigrations

python manage.py migrate