编辑:我以前不清楚,我在django管理面板中保存我的对象,而不是在视图中.即使我保存没有多对多关系的对象,我仍然会收到错误.
我有一个名为模型TogglDetails具有ForeignKey与标准的Django关系User模型和MayToManyField一个叫模型关系Tag.我已经用django admin注册了我的模型,但是当我尝试保存TogglDetails实例时,我在标题中得到了错误.
这是我的模特:
class Tag(models.Model):
name = models.CharField(max_length=30)
def __unicode__(self):
return self.name
class TogglDetails(models.Model):
token = models.CharField(max_length=100)
user = models.ForeignKey(User)
tags = models.ManyToManyField(Tag, blank=True, null=True)
def __unicode__(self):
return self.user.username
class Meta:
verbose_name_plural = "toggl details"
Run Code Online (Sandbox Code Playgroud)
据我所知,我的模型应该没有问题,而django管理员应该只保存实例而不会出现任何问题.我错过了一些明显的东西吗?
我正在使用Django 1.3
在最近从Oracle迁移到Postgres并从Django 1.2升级到1.3之后,我们在将对象保存到数据库时遇到了问题.当调用save()时,不返回id,即使通过标准django管理面板保存标准django auth模型,也会发生这种情况(即使用户已添加到db,也会返回'/ admin/auth/user/None /')并有一个id).
我们运行相同数据库的所有其他站点都没有这个问题,但是它们运行的是Django 1.1或1.2.
我们发现,对于迁移后创建的新表,它们的序列具有"拥有"属性,该属性由序列所在的列(通常是id列)拥有.改变'拥有'属性修复了我们在1.3中遇到的问题.
有人知道这个问题的根源是什么吗?我们已经找到了解决方案,如果其他人有这个问题,但我们很想知道是什么导致了这个问题.
我想使用 django ORM 来完成计数分组,但limit 21每次都选择 sql 意外。不想要限制,为什么limit 21会出现,如何获取所有数据?
模型:
class Company(models.Model):
company_no = models.CharField(primary_key=True, max_length=128)
name = models.CharField(max_length=128)
is_test = models.BooleanField(default=False)
class Meta:
db_table = 'company'
class User(models.Model):
symbol = models.BigIntegerField(primary_key=True)
is_test = models.BooleanField(default=False)
class Meta:
db_table = 'user'
class UserEmploy(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, db_column='symbol', to_field='symbol', related_name='employ')
company = models.ForeignKey(Company, on_delete=models.CASCADE, to_field='company_no', db_column='company_no', related_name='user_employ')
class Meta:
db_table = 'user_employ'
Run Code Online (Sandbox Code Playgroud)
我认为的 Django 代码:
employ_qs_exclude_test = UserEmploy.objects\
.exclude(user__is_test__in=utils.IS_TEST_MODE)\
.values("company__name") \
.annotate(employ_count=Count('user', distinct=True))\
.order_by('company')
Run Code Online (Sandbox Code Playgroud)
sql日志:
SELECT `company`.`name`, COUNT(DISTINCT …Run Code Online (Sandbox Code Playgroud) pip install apache-superset
Run Code Online (Sandbox Code Playgroud)
然后我写了
superset db upgrade
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Traceback (most recent call last):
File "/home/cod7/superset-env/bin/superset", line 5, in <module>
from superset.cli import superset
File "/home/cod7/superset-env/lib/python3.8/site-packages/superset/__init__.py", line 21, in <module>
from superset.app import create_app
File "/home/cod7/superset-env/lib/python3.8/site-packages/superset/app.py", line 24, in <module>
from flask_appbuilder import expose, IndexView
File "/home/cod7/superset-env/lib/python3.8/site-packages/flask_appbuilder/__init__.py", line 5, in <module>
from .api import ModelRestApi # noqa: F401
File "/home/cod7/superset-env/lib/python3.8/site-packages/flask_appbuilder/api/__init__.py", line 21, in <module>
from .convert import Model2SchemaConverter
File "/home/cod7/superset-env/lib/python3.8/site-packages/flask_appbuilder/api/convert.py", line 4, in <module>
from flask_appbuilder.models.sqla.interface import SQLAInterface
File "/home/cod7/superset-env/lib/python3.8/site-packages/flask_appbuilder/models/sqla/interface.py", line …Run Code Online (Sandbox Code Playgroud) django ×3
annotate ×1
django-admin ×1
group-by ×1
limit ×1
postgresql ×1
python ×1
python-3.x ×1
sqlalchemy ×1
ubuntu-20.10 ×1