0
我正在使用Django REST框架。我有兩個模型,網站和狀態。Django通過外鍵或其他字段引用模型
class Sites(models.Model):
site_id = models.AutoField(primary_key=True)
status = models.ForeignKey(Statuses, models.DO_NOTHING, blank=True, null=True)
class Statuses(models.Model):
status_id = models.AutoField(primary_key=True)
description = models.CharField(max_length=255, blank=True, null=True, unique=True)
class Meta:
managed = True
db_table = 'Statuses'
我希望能夠在網站上執行GET,並有Statuses.description場返回(而不是Statuses.status_id)。另外,我希望它可以在POST中互換地使用status_id或description來創建新網站。這類功能屬於哪裏(串行器,模型等)?
我知道我可以通過向Sites模型添加一個屬性然後在Sites序列化器中引用這個字段來完成我的問題的第一部分。
@property
def status(self):
return self.row_status.description
但是我認爲模型的約定是它應該是數據庫表的1:1表示。有一個更好的方法嗎?
這個回答我的問題的第一部分,並且是一個非常比在模型中使用@property更好。但是,它並沒有解決問題的第二部分:有沒有辦法通過整數(id)或字符串(描述)來發布新的站點和引用狀態? –