我有一個有兩個主類的模型。在Django中排序ForiegnKey對象
首先是書模型,第二個是在頁面模型
的網頁有一個外鍵字段,這讓我訪問他們,但書是我很好奇的是,你將如何實現頁碼這樣當創建一個新的頁面對象時,該編號僅限於當前的頁面長度內?而且,如果它被插入,你將如何將下一頁向下翻一頁?
現在我只是有一個整數字段,我手動輸入頁碼,但如果我想讓用戶以後自己添加頁面,那是行不通的。
更新:
class Textbook(models.Model):
founder = models.CharField(max_length=256)
title = models.CharField(max_length=256)
cover = models.ImageField(upload_to=get_image_path,
blank=True,
null=True)
def __str__(self):
return self.title
class Page(models.Model):
textbook = models.ForeignKey(Textbook, related_name="pages")
page_title = models.CharField(max_length = 256)
def __str__(self):
return self.page_title
class Section(models.Model):
page = models.ForeignKey(Page,related_name="sections")
section_title = models.CharField(max_length=256)
text = RichTextField(config_name='awesome_ckeditor')
def __str__(self):
return self.section_title
所以,以上是我的模型,我所要做的是讓這個您可以跟蹤的網頁,其中包含在TextBook
S,爲了。此外,您可以插入一個新頁面,並且頁碼也會相應更改。所以如果你說有1,2,3頁並且想添加一個新頁面,你可以在頁面4添加一個新頁面,或者在2到3之間插入一個新頁面,而前一頁面3變爲第4頁。
你使用了哪個數據庫?如果postgres,將頁面實現爲json字段會更好。 –
那麼......各種各樣的「deque」?我的第一個「天真」答案是兩個自我'外鍵'和一個聰明的'save()'函數,但* thud *「必須有更好的方法」。使用基於JSON的解決方案將是另一種選擇,但可能會成爲問題,具體取決於您計劃在做什麼。 –
@RaphaëlGomès這就是我想的。但我同意一定有更好的辦法。從sqlite(我現在使用的)轉換爲JSON有多簡單? – Peter