Python django管理站点上的数据库视图
几天来我一直在学习django。我有两个模型,一旦我在admin.py中注册了这些模型,它们就会完美地显示在管理站点上。但是我想创建Python django管理站点上的数据库视图,python,sql,django,django-models,django-admin,Python,Sql,Django,Django Models,Django Admin,几天来我一直在学习django。我有两个模型,一旦我在admin.py中注册了这些模型,它们就会完美地显示在管理站点上。但是我想创建数据库视图(而不是django提到的视图),我已经为视图创建了模型,models.py上的managed=False。此数据库视图是两个表的联接。当我启动服务器时,我得到一个错误,说我的数据库视图不是表,这是正确的。但我在这里遗漏了一些我无法解决的问题。我错过了什么。或者我对数据库视图本身的想法是错误的,如果是这样的话,我如何做到这一点?我必须运行sql(当然是使用
数据库视图
(而不是django提到的视图
),我已经为视图创建了模型,models.py上的managed=False
。此数据库视图是两个表的联接。当我启动服务器时,我得到一个错误,说我的数据库视图不是表,这是正确的。但我在这里遗漏了一些我无法解决的问题。我错过了什么。或者我对数据库视图本身的想法是错误的,如果是这样的话,我如何做到这一点?我必须运行sql(当然是使用django db api)是不是可以缓解这种情况
这是我的密码
class product(models.Model):
users = models.ForeignKey(User)
product = models.CharField(max_length=20)
def __unicode__(self):
return self.product
class product_models(models.Model):
product = models.ForeignKey('product')
model_name = models.CharField(max_length=50)
model_price = models.IntegerField(max_length=4)
model_desc = models.TextField(blank=True)
commision = models.IntegerField(max_length=3)
def __unicode__(self):
return self.model_name
class my summary_view(model.Model):
# this is my database view
product = models.ForeignKey('product')
model_name = models.ForeignKey('product_models')
class meta :
managed = False
"""
I am assuming this is what above code does, I may be wrong also here in creating
database view in the above table .
Create View `summary_view` as
Select
p.product, m.model_name
From
products p , product_model m.
"""
您的视图称为summary_视图,但django默认情况下会查找appname_summary_视图,或者: 加 或者更新您的视图
create view 'appname_summary_view'...
给我们看看你的代码!!如果我们不知道你做对了什么,理论解释就毫无意义\wrong@yuvi我已经添加了代码。我不明白你想做什么。它应该是动态模型的基础吗?还是说萨默里应该是一个中介模型?我真的很困惑。你的模型到底是怎样的视图?这是两个完全不同的概念@yuvI添加了更多的代码。是的,您需要在数据库中创建视图名称,Django的名称通过这些方法中的一种进行匹配。您的答案有点奏效。谢谢,但我不想插入数据,只想查看数据库中已经存在的数据。从这里开始我能做些什么。我做了
manage.py sqlall
。这实际上是用createtable
创建的表,而不是createview
。我认为django默认情况下不支持ORM中的视图概念。其他一些堆栈跟踪帖子谈到了超越save和delete方法的问题:我也不知道您最终想要实现什么,您的视图本身看起来有点有限。你的观点有没有比你发表的更多?我发表的只是我想要的一个样本,我的数据库中有很多col,我的观点中有更多col。但除此之外,我的视图方法是正确的,我的意思是,我应该首先在这里创建视图,还是在有请求时运行查询。这里有一篇关于查询与视图的文章(我个人对视图没有很好的经验,只是在需要时使用连接)
create view 'appname_summary_view'...