簡體   English   中英

Django模型和OOP設計

[英]django models and OOP design

我寫了一個在線游戲的任務系統。 我的任務被序列化為JavaScript客戶端的json objects ,該JavaScript客戶端隨后從REST后端獲取這些任務(我使用django RestFramework)

現在,我想知道應該在哪個classdjango model放置屬於數據的“行為”。

我存儲屬於幾個不同的模型一個任務的數據:一個model QuestHistory :與models.FieldsBoolean completed ,和Datetime started ,我把屬於特定用戶的信息(這也作為一個字段的用戶)。

然后,我有一個model QuestTemplate :始終相同的部分,像quest_titlequest_description字段

我還有一個model Rewards model Task and TaskHistory以及model Task and TaskHistory ,它們與帶有foreign Key field的任務鏈接。

為了將這些信息組合回quest,我創建了一個純python class Quest(object): check_quest_completion並在該類上定義了諸如check_quest_completion類的方法。 此類隨后進行序列化。 這種方法的問題是,它變得非常冗長,例如,當我實例化此類或定義序列化器時。

是否存在將django model所有字段放入另一個類(這里是我的Quest類)的python或Django“快捷方式”,也許類似於dict.update方法?

還是我應該嘗試將方法放到models並擺脫Quest class

我在游戲中還有其他一些地方與任務系統非常相似,例如庫存系統,因此我希望有一個更優雅的解決方案。

您應該將Quest類的方法放在模型本身上,並擺脫Quest類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM