请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

模型有多个子类怎么屏蔽细节呢

比如需要建立一个用户,但是用户有两者。

比如 chinese 有 姓,名,两个charfiled

Amertcan 有FirstName SecondName LastName 三个charField

就是两个子类属性差很多的情况。该怎么写models跟分表呢呢


正在回答 回答被采纳积分+3

3回答

提问者 justcalm 2018-02-09 16:25:41

这是现在的方式。

https://img1.sycdn.imooc.com//szimg/5a7d56f60001cd2128801800.jpg

https://img1.sycdn.imooc.com//szimg/5a7d57a70001e92228801800.jpg

https://img1.sycdn.imooc.com//szimg/5a7d57a70001564b28801800.jpg

加一个cn_user的步骤为。 Add User 然后填name/age/Country.下面再填cn_user的信息。us_user信息不填。很不方便。


希望效果是这样的.Name Age这些不变。选择Country 为China后,下面就只出现对应China的表单。选择US后就只出现对应US的表单

https://img1.sycdn.imooc.com//szimg/5a7d5ab20001b07210260768.jpg

https://img1.sycdn.imooc.com//szimg/5a7d5ab20001915112020760.jpg



1 回复 有任何疑惑可以回复我~
提问者 justcalm 2018-02-02 23:09:13

找到了。多表继承和子类可以实现。不过有更好的办法么。

1 回复 有任何疑惑可以回复我~
  • bobby #1
    多表继承和子类是比较长久的方法 其他方法都是一些trick 这些trick在你后期代码维护的过程中 可能会给以后造成不便
    回复 有任何疑惑可以回复我~ 2018-02-05 10:09:26
提问者 justcalm 2018-02-05 22:28:05

https://img1.sycdn.imooc.com//szimg/5a786a570001267016521472.jpg

分了三表,一个存储中国用户,一个美国用户,一个映射。不过请问在创建的时候,怎么调用model生成对象呢。查了下,重写models __init__ 似乎可以,但是很复杂的样子。。不会。。方便教一下么。

需求就是,在admin后台创建时,选择国籍后,就能根据不同国籍提供不同的表单内容




0 回复 有任何疑惑可以回复我~
  • bobby #1
    你可以讲people的abstract设置为True 这样就不会建立people表了
    回复 有任何疑惑可以回复我~ 2018-02-06 16:42:26
  • 提问者 justcalm 回复 bobby #2
    那请问admin view 怎么实现呢,就是先是国家列表,选择国家后,再动态出现每个国家的详情页
    回复 有任何疑惑可以回复我~ 2018-02-06 20:59:47
  • bobby 回复 提问者 justcalm #3
    能否截图大概说明一下, 你的需求我不是很理解
    回复 有任何疑惑可以回复我~ 2018-02-08 18:08:39
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号