[英]TypeError __str__ returned non-string (type int)
我正在嘗試編寫一個劇本應用程序,但是當我實際將信息添加到我的 model 時遇到了問題。 我的模型如下所示:
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
當我從 go 到我的后端 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 應用程序的其他部分中。 我需要在我的劇本 model 中添加塊嗎? 無論如何,在這一點上,任何建議都會很棒。
__str__
必須返回string
,並且您正在返回 integer 即PositiveSmallIntegerField
。 將該值轉換為Block
model 中的string
def __str__(self):
return str(self.type)
有關str [Django-doc] 的更多詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.