我想創建以下模型簡單的REST API:Django的REST框架,並與一個字段相關車型
我叫產品,其中一些字段主要實體:名稱,價格...... 我也有一個名爲Keyword的相關實體,其中包含一個字段:關鍵字。
每個產品都可以有一個或多個關鍵字。
我可以很容易地把這種分成兩個Django模型:
class Product(models.Model):
name = models.CharField("Name of the product", max_length=100)
description = models.TextField("Description of the product")
price = models.IntegerField("Price of the product")
received_at = models.DateField("Received at")
class Keyword(models.Model):
keyword = models.CharField(max_length=50)
product = models.ForeignKey(Product, related_name="keywords")
但我與串行丟失。
我想這樣一個簡單的動詞創建:
POST /products
{
"name": "My product name",
"description": "My product description",
"price": 40,
"received_at": "2015-12-1",
"keywords": ["keyword1", "keyword2"]
}
和公共列表中的所有,列表中的一個,更新和刪除:
GET /products
[{"name": "Product 1"...}, {"name": "Product 2"...}]
GET /products/1
{"name": "Product 1", "description": ...}
PUT /products/1
{
"name": "My product name",
"description": "My product description",
"price": 40,
"received_at": "2015-12-1",
"keywords": ["keyword2"]
}
DELETE /products/1
的問題是管理的關鍵字。 創建新產品時創建所有關鍵字 產品更新時,我必須檢查哪些關鍵字是新聞以及哪些關鍵字已被刪除。
另外我希望我的API可以在不久的將來用更多的關係來擴展,比如帶有簡單字符串字段的「關鍵字關係」。
任何想法?
既然你要發佈的產品一起關鍵字,你必須手動編寫的邏輯。 DRF現在不支持嵌套關係POST請求AFAIK。 –