所以我已经成功地将Django连接到一个预先存在的数据库(检查,验证和同步),我创建了一个应用程序和一个项目以及所有这些(我正在阅读Django书,我在第5章),但是当我实际运行它并打印东西时,我得到一个(假定的)错误.在python中,我正确导入我需要的东西(from myapp.models import Artist
)但是如果我尝试打印,例如,表(print Artist.objects.all()[:5]
)中的前五行,我得到这个:
[<Artist: Artist object>, <Artist: Artist object>, <Artist: Artist object>, <Artist: Artist object>, <Artist: Artist object>]
Run Code Online (Sandbox Code Playgroud)
为什么它不实际打印值而不是看似占位符?这里有什么我想念的吗?
我有一个有三列的桌子; 第一列包含ID,另外两列包含日期(其中最多一列为null,但我认为这不会影响任何事情).我如何根据哪个日期更大来订购ID?我试过了
ORDER BY CASE
WHEN date1 > date2 THEN date1
ELSE date2
END
Run Code Online (Sandbox Code Playgroud)
但这没用.谁能帮我?此外,我看到其他人发布的所有类似问题都有它,以便查询根据第一列对结果进行排序,然后如果第一列为空,则为第二列.我首先必须定义每个空值吗?我正在通过完全外部联接创建此表,因此这将是一个完全不同的问题,所以希望它可以使用空值来完成.
所以我有这个预先存在的数据库,我正在尝试使用Django进行连接,我已经对数据库进行了内省,我只是在实际做任何事情之前清理模型,而且我遇到了障碍.其中一个数据库表有一行:
"name"字符变化为NOT NULL
当我跑步时python manage.py syncdb
,我收到以下错误:
app.artistname:"name":CharFields需要一个正整数的"max_length"属性.
所以我进入models.py找出问题所在,我看到:
name = models.CharField(unique = True,max_length = -1)
所以我的问题是,如果数据库中的定义没有设置值,我应该将max_length设置为什么值?我只是将其设置为最大可能值吗?
所以我刚刚遇到了一些有趣的东西,我不知道它之前是否已被回答,因为我不知道它叫什么.可以说你有两张桌子; 第一行有一行,第二行有两行.如果您运行以下语句:
SELECT t1.*
FROM table1 t1, table2 t2
Run Code Online (Sandbox Code Playgroud)
它返回两行,两者都有相同的值,但第一个表只有一行!为什么会这样?如果你没有相应地改变select子句,我不认为在from子句中有另一个表改变了什么.