Database django模型用于处理数据库视图、表

Database django模型用于处理数据库视图、表,database,django-models,views,Database,Django Models,Views,我的数据库中有表books[isbn,name,author,AvailableEnum],students[name,major,coursestaking],course[name,department,number,capacity,booksNeeded],department[name,courses] 我有一个小视图,其中包含所有上述字段{courseName,BooksRecommendated,dept,countofstudents}。 在为视图创建模型时,我应该这样说 cla

我的数据库中有表books[isbn,name,author,AvailableEnum],students[name,major,coursestaking],course[name,department,number,capacity,booksNeeded],department[name,courses] 我有一个小视图,其中包含所有上述字段{courseName,BooksRecommendated,dept,countofstudents}。 在为视图创建模型时,我应该这样说

class Lookup(models.Model):
    course = models.ForeignKey('course',db_column = 'name')
    booksRecommended = models.ForeignKey('books',db_column = 'isbn')
    dept = models.ForeignKey('department',db_column = 'name')
    studentcount = models.IntegerField()

我收到错误ProgrammingError:column lookup.id不存在。想法是受欢迎的

模型。您从中继承的模型假定表(或视图,在您的情况下)有一个名为
id
的列,该列用作主键,除非您明确将其他列标记为
primary\u key=True


您视图的sql或
/manage.py inspectdb
应该可以帮助我们找到此视图的主键。

您从中继承的
models.Model
假设表(或视图,在您的情况下)有一个名为
id
的列用作主键,除非您已明确将其他列标记为
主键=True


您视图的sql或
/manage.py-inspectdb
应该可以帮助我们找到此视图的主键。

此视图没有主键。因此,当我有主键时。/manage.py-inspectdb我看不见。但是将其中一列(唯一)设置为primary_key=True确实解决了问题。感谢Lakshman,但是在视图中,我应该显式指定关系,还是因为数据库视图已经知道约束,我需要担心吗?如果主键的名称是id,django可以猜到,否则,你需要明确地指定它。我错过了这个自动识别模式,这让我损失了一些时间。将
primary\u key=True
添加到模型上始终不为空的视图的任何字段中即可解决此问题!此视图没有主键。因此,当我使用/manage.py inspectdb时,我看不到。但是将其中一列(唯一)设置为primary_key=True确实解决了问题。感谢Lakshman,但是在视图中,我应该显式指定关系,还是因为数据库视图已经知道约束,我需要担心吗?如果主键的名称是id,django可以猜到,否则,你需要明确地指定它。我错过了这个自动识别模式,这让我损失了一些时间。将
primary\u key=True
添加到模型上始终不为空的视图的任何字段中即可解决此问题!