Django 中如何批量创建models? 如何抽象出这个类?
一段代码如下
from django.db import models
table_name = "新闻"
class Person(models.Model):
class Meta:
db_table = table_name
app_label = table_name
title = models.CharField("title", max_length=300)
content = models.TextField("content", max_length=300)
现在的需求是,我如何把这个方法抽象出来?
意思就是说, 我直接给Person
这个类可以传入参数,然后在里面的class Meta
中可以直接用
我最早想到是这样
class Person(models.Model):
def __init__(self,table_name):
self.table_name = table_name
class Meta:
db_table = self.table_name
app_label = self.table_name
title = models.CharField("title", max_length=300)
content = models.TextField("content", max_length=300)
但是失败了,不能直接传入参数? 这导致很不灵活,我如果有10个models要健 但是他们除了表名称不一样,其他都是一样~
那这样不是很不灵活
当然也可以把这些数据全部放在一张表里面,但是感觉考虑到后期的数据量以及查询效率的问题,还是想把表分开~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Django models支持
abstract=True
属性, 设置这个属性后, 这个models不会在创建表, 专门用来继承, 具体的可以看官方文档 ModelsAbstract base classes
部分.An example:
可以试试用继承
或者使用元类去创建。