【发布时间】:2020-07-25 10:54:27
【问题描述】:
当我向我的 django 服务器发送一个发布请求时,我遇到了这个错误,它似乎只返回
"user": [
"This field must be unique."
]
}
我做了一些调试,发现它与我使用一对一字段的事实有关,这是我的: 模型.py
from django.contrib.auth.models import User
class EventPost(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
event_name = models.CharField(max_length=50 )
event_time = models.CharField(max_length = 50, default = '')
event_date = models.CharField(max_length = 50, default = '')
def __str__(self):
return self.event_time
序列化器.py
from rest_framework import serializers
from .models import EventPost
from django import forms
from django.contrib.auth.validators import UnicodeUsernameValidator
class EventPostSerializer(serializers.ModelSerializer):
class Meta:
model = EventPost
fields = (
'user',
'event_name',
'event_time',
'event_date',
)
还有我的观点.py
from django.shortcuts import render
from rest_framework.response import Response
from rest_framework.views import APIView
from .models import EventPost
from .serializers import EventPostSerializer
from rest_framework.permissions import IsAuthenticated
# Create your views here.
class PostViews(APIView):
permission_classes = (IsAuthenticated,)
def get(self, request, *args, **kwargs):
data = {
'GET':'True',
}
return Response(data)
def post(self, request,*args, **kwargs):
serializer = EventPostSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
else:
return Response(serializer.errors)
我对 django rest 框架很陌生,所以请原谅。如果您需要更多信息,请告诉我。
【问题讨论】:
-
A
OneToOneField是ForeignKey和unique=True,所以是的。该字段中的值需要唯一。
标签: python django python-3.x django-rest-framework