Python django管理站点上的数据库视图

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。我有两个模型,一旦我在admin.py中注册了这些模型,它们就会完美地显示在管理站点上。但是我想创建
数据库视图
(而不是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'...