【发布时间】:2022-01-31 00:51:54
【问题描述】:
我正在尝试编写一个剧本应用程序,但是当我实际向我的模型添加信息时遇到了问题。我的模型如下所示:
class Screenplay(models.Model):
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
title = models.CharField(max_length=100)
def __str__(self):
return self.title
class Block(models.Model):
class BlockTypes(models.IntegerChoices):
HEADING = 1, 'HEADING'
DESCRIPTION = 2, 'DESCRIPTION'
CHARACTER = 3, 'CHARACTER'
DIALOGUE = 4, 'DIALOGUE'
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
text = models.TextField()
type = models.PositiveSmallIntegerField(
choices=BlockTypes.choices,
default=BlockTypes.HEADING
)
screenplay = models.ForeignKey(Screenplay, on_delete=models.CASCADE, related_name='blocks')
def __str__(self):
return self.type
当我转到我的后端 api (localhost:8000/api/screenplays) 时,我看到我的示例剧本如下:
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"uuid": "SAMPLE - UUID",
"title": "SAMPLE - TITLE",
"blocks": []
},
]
我在标题中发布的错误是在我实际向剧本添加块时弹出的。在我的 api 中,它看起来像 "blocks": [],但是当我将一个块发布到某个剧本时,它会中断。我只是不明白问题到底是什么,如果它是在我的 models.py 中还是在我的 django 应用程序的其他部分中。我需要在我的剧本模型中添加一个块吗?无论如何,在这一点上,任何建议都会很棒。
【问题讨论】:
标签: python django api django-models django-rest-framework