问题描述
在我的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