- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前是一名学生,正在尝试使用 python/django 和 React 创建一个全栈网络应用程序。在构建我的后端时,我遇到了一个问题,当发布一个包含关联的对象时,关联的 id 在响应有效负载和数据库之间丢失了。我知道状态正在更新,并且可以毫无问题地创建后端不使用关联的其他对象。我假设我的错误一定是在我制作的模型或序列化器中的某个地方,但到目前为止我还没有找到它。
500 错误信息:
Integrity error at "api/v1/event"
null value in column "timeline_id" violates not-null constraint
DETAIL: failing row contains (index_id, junk_data, junk_data, 1, null)
我的模型:
from django.db import models
class Timeline(models.Model):
name = models.CharField(max_length=50, default='n/a')
def __str__(self):
return self.name
class Event(models.Model):
name = models.CharField(max_length=25, default='n/a')
description = models.CharField(max_length=150, default='n/a')
coordinate = models.IntegerField(default=0)
timeline = models.ForeignKey(Timeline, on_delete=models.CASCADE, related_name="events")
def __str__(self):
return self.name
class Note(models.Model):
article = models.TextField(default='n/a')
event = models.ForeignKey(Event, on_delete=models.CASCADE, related_name='notes')
# event = models.ManyToManyField(Event)
def __str__(self):
return self.article
我的观点:
from rest_framework import viewsets
from .serializers import TimelineSerializer, EventSerializer, NoteSerializer
from .models import Timeline, Event, Note
class TimelineView(viewsets.ModelViewSet):
queryset = Timeline.objects.all()
serializer_class = TimelineSerializer
class EventView(viewsets.ModelViewSet):
queryset = Event.objects.all()
serializer_class = EventSerializer
class NoteView(viewsets.ModelViewSet):
queryset = Note.objects.all()
serializer_class = NoteSerializer
我的序列化器:
from rest_framework import serializers
from .models import Timeline, Note, Event
class NoteSerializer(serializers.ModelSerializer):
class Meta:
model = Note
fields = ('id', 'title', 'article')
class EventSerializer(serializers.ModelSerializer):
notes = NoteSerializer(many=True, read_only=True)
class Meta:
model = Event
fields = ('id', 'name', 'description', 'coordinate', 'notes')
class TimelineSerializer(serializers.ModelSerializer):
events = EventSerializer(many=True, read_only=True)
class Meta:
model = Timeline
fields = ('id', 'name', 'events')
链接到 github 仓库: https://github.com/dantehollo/world_builder_site
我在 linux (ubuntu 18.04.3) 上使用 python 3.6.8
我尽量做到具体和简短。如果有任何遗漏,请告诉我,我会在看到请求后立即发布。非常感谢任何有关这是什么、为什么会发生以及如何避免再次发生的帮助,谢谢。
最佳答案
根据您的Event
模型,timeline
属性(也是外键)是必需的,不能为空。而且您忘记将此 timeline
添加到 EventSerializer 的字段中:
class EventSerializer(serializers.ModelSerializer):
notes = NoteSerializer(many=True, read_only=True)
class Meta:
model = Event
fields = ('id', 'name', 'description', 'coordinate', 'notes', 'timeline')
现在,如果您不在请求中发送 timeline
,DRF 将给出您必须包含它的 ValidationError。
关于python - 500 错误 : null value in column "timeline_id" violates not-null constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59077537/
我正在为学校做作业。该代码应该从文件中读取并创建一个数组,然后对数组的值进行排序以输出某些信息。只要我在文件中有 3 行以上的信息,它就可以正常工作。如果没有,我会收到以下错误: First-chan
在我的表中,我有一个唯一的约束。在 hibernate 中,当我添加一个违反该约束的项目时,我想捕获它,因此它将更新而不是创建一个项目。 当我没有设置 try-catch block 时 up
我正在尝试将 Excel 文件中的一些数据插入到表中。我有两个excel文件如下: Test2: 5/12/2012 5/18/2012 ABQ ANC 1 52 5/12/2012
我有自定义约束: @Target({FIELD, METHOD}) @Retention(RetentionPolicy.RUNTIME) @ConstraintComposition(Composi
“违反任何时间序列”和“违反所有时间序列”这两个选项有什么区别?我可以想象前者会轻松做什么,但我不知道后者会做什么。 所有时间序列?它的射程有多长?为什么它有一个 for 选项? 最佳答案 What'
我正在尝试初始化 DataEditor 的对象,我的DataEditor类(class)工具interface IDataEditor where T : IEditableObject . Data
我正在使用带有 java 插件 4.0 和 findbugs 插件 3.4.3 的 SonarQube 5.6。使用此配置,findbugs 报告的外部类违规不会被报告为 Sonar 违规。以下是代码
我正在使用 DbUnit 框架对我的 JPA 实体 bean 进行单元测试。我已经从数据库表生成了实体。还将 DB 数据导出到 xml 文件中,DbUnit 在执行测试时可以使用这些文件。 但是对于每
我写了这段简单的代码来动态分配一个 4 维数组: #include #include int**** alloc() { int i,j,k; int ****matrix;
我的 Java 程序出现问题。我使用 MS Access 作为数据库,并使用 UCanAccess 连接到数据库。 当我尝试将文本插入数据库时,出现异常: net.ucanaccess.jdbc.
我正在尝试使用埃拉托斯特尼筛法解决 SPOJ 的 PRIME1 问题。该代码对于较小的整数工作正常,但对于长整数显示以下错误 - "Unhandled exception at 0x770d15ee
我不明白这个案例,但这对我来说真的很重要,请帮助我... void __fastcall TForm1::Button4Click(TObject *Sender) { String masu
请看我的代码: adj = (int *)calloc(n * n, sizeof(int)); scanf("%d", &m); for (i = 0; i < m; i++) { scan
下面这段代码有什么问题以及如何修复它。 #include using namespace std; template class guard{ public: guard(Func1 firs
我有一个多线程 C# 应用程序,它创建文件,打开它们进行处理,然后在完成后删除它们。此应用程序可以预期处理 1 - 100 个文件。有点随机(很可能归因于应用程序的多线程性质)当我尝试在处理后删除文件
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
是否有可能在出现段错误后恢复 C 程序的正常执行流程? struct A { int x; }; A* a = 0; a->x = 123; // this is where segmenta
在 Magento 中使用信用卡/借记卡下订单时出现以下错误: Order saving error: SQLSTATE[23000]: Integrity constraint violation:
我正在处理属于 SDK 一部分的文件。当我在 phpstorm 中将文件提交到 svn 时,我收到关于 Unused definition SomeFunction 的警告,其中 SomeFuncti
简而言之,我有一个 C# 应用程序执行大量 mciSendString 调用(通过 dllimport)来控制 wav 文件播放(本质上是打开、播放、暂停、停止、状态、关闭)。运行一段时间后,应用程序
我是一名优秀的程序员,十分优秀!