- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我的 models.py 文件,它使用 AutoField 作为主键,因此它是唯一的。正如我所读到的,AutoField 会自动递增。
from django.db import models
class Post(models.Model):
post = models.CharField(max_length=1000,unique=True)
post_id = models.AutoField(primary_key=True)
neg = models.IntegerField(default=0)
pos = models.IntegerField(default=0)
is_money= models.CharField(max_length=1,default = "y")
def __str__(self):
return self.post+"\tScore : "+str(self.neg+self.pos)
我有一个startup.py 文件,它使用以下代码将记录添加到数据库中。我使用 get_or_create
函数来检查帖子是否退出,否则创建它 Post.objects.get_or_create(post = text ,defaults={'neg':0,'pos':0,' is_money':has_money_tags})
def add_to_db(self):
from reviewer.models import Post
Post.objects.all().delete()
import django
django.setup()
for num,i in enumerate(self.unlabelled):
print num
money_tags=self.getHashTagsfromContent(i[0])
text = re.sub(r'#[^\s]+',"",i[0])
y_n=i[1] if i[1].strip()=='y' or i[1].strip()=='n' else filter(None,map(lambda x : x.strip("]'[ \n\t"),i[1].split(",")))
if isinstance(y_n,list):
money_tags=money_tags+y_n
has_money_tags=y_n if y_n =='y' or y_n=='n' else self.isMoney(money_tags)
self.logger.info(str(text)+"\t"+str((num+1))+"\t"+str(has_money_tags)+"\n")
p,created=Post.objects.get_or_create(post = text ,defaults={'neg':0,'pos':0,'is_money':has_money_tags})
def run():
r=Reviewer_Data()
r.add_to_db()
这是在 makemigrations 之后创建的 Migrations 类
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.CreateModel(
name='Post',
fields=[
('post', models.CharField(unique=True, max_length=1000)),
('post_id', models.AutoField(serialize=False, primary_key=True)),
('neg', models.IntegerField(default=0)),
('pos', models.IntegerField(default=0)),
('is_money', models.CharField(default=b'y', max_length=1)),
],
),
]
当我执行python manage.py runserver
时。它为我提供了 post_id 列的错误 django.db.utils.IntegrityError: NOT NULL 约束失败: reviewer_post.post_id
我试图在服务器启动期间在数据库中添加一些记录,并且在没有唯一字段的情况下它可以工作,但是当我更新模型文件以使两个字段唯一的 post 和 post_id 时,它开始出现 post_id 问题。
如何确保添加唯一的字段可以正常工作?
感谢任何帮助。
最佳答案
我刚刚开始使用 django,所以我一直被这个问题困扰。这是我尝试过的有效方法。
正如多米诺建议的那样,我删除了 post_id 字段,Django 自动处理创建名为 id 的主键。现在这是我的 models.py 文件。
from django.db import models
class Post(models.Model):
post = models.CharField(max_length=1000,unique=True)
neg = models.IntegerField(default=0)
pos = models.IntegerField(default=0)
is_money= models.CharField(max_length=1,default = "y")
def __str__(self):
return self.post+"\tScore : "+str(self.neg+self.pos)
我已经删除了迁移文件夹。我之前没有做过syncdb。我仍在学习中,而且我远远落后于Django。
这就是 Adrián Deccico 在 SO - How do I drop a table from SQLite3 in DJango? 的另一个答案中删除表格的方式。 。首先,我这样做了,还删除了迁移文件夹。
./manage.py sqlclear reviewer | ./manage.py dbshell
./manage.py syncdb
然后是python manage.py migrate
,然后是python manage.py sqlmigrate reviewer 0001
,然后是python manage.py runserver
,它起作用了。
关于python - Django runserver 失败,并显示 django.db.utils.IntegrityError : NOT NULL constraint failed: reviewer_post. post_id (AutoField),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34585441/
我在 app_name 文件夹的根目录下的 django 应用程序中运行脚本;就像在 app_name>app_name 中一样。 在脚本的顶部,我有这个: import os import sys
我正在使用 sqlite 数据库,我将模型声明为: class User(db.Model): __tablename__ = 'users' id = db.Column(db.In
我正在使用 sqlite 数据库并且我在这个要点中声明了模型 https://gist.github.com/mmahesh/7245561 我添加了一个带有事务管理器的模型实例作为 with tra
我的网页的注册 View (如下)通过 Django 的身份验证模型 User 创建了一个新用户,然后使用该新创建的用户 ID 通过我自己的模型 account.Users 添加更多信息。我的问题是,
我正在尝试使用复合主键创建一个表。它有一个整数和两个字符串字段作为键。当我提交 session 时,它会引发 IntegrityError .我在做什么有什么问题? class Targets(db.
当我尝试将新条目保存到名为“config”的表中时遇到了这个问题, class Config(models.Model): ident = models.CharField(max_lengt
找不到解决方案。我现在传递一个元组列表,其中包含要插入的信息而不是从其他表中提取的信息,问题就消失了。 我目前正在编写将要编辑表格的代码。我有几行信息要插入,但无论顺序如何,我总是在第四个元素上收到
我有 python 线程应用程序 + Postgres。我正在使用 Django 的 ORM保存到 Postgres.. 我有并发保存调用。偶尔有 2 个线程保存导致问题的相同主键。 Postgres
有人可以向我解释如何正确测试 Postgres 数据库错误,尤其是 IntegrityError。例如我有下一个测试: class TestSlugs(TestCase): # This sl
我在尝试删除 User 时收到 IntegrityError: IntegrityError: (1451, 'Cannot delete or update a parent row: a fo
在 python 中,我正在使用 importmany 填充 SQLITE 数据库,因此我可以一次导入数万行数据。我的数据包含在元组列表中。我在数据库中设置了我想要的主键。 我遇到的问题是主键错误会引
每当尝试附加文件时,我的应用程序(本地)都会引发ActiveStorage::IntegrityError错误。我如何摆脱这个错误? 我只有一个has_one_attached,但我不知道该错误是如何
我想插入几个User数据库中的行。我真的不在乎插入是否成功,只要我得到通知,在这两种情况下我都能做到,那么哪一个在性能(主要是速度)方面更好? 始终插入行(通过调用模型的 save 方法)并捕获潜在的
我开始使用 factory_boy 包,所以我设置了一些工厂并想测试创建的对象不会引发任何验证错误。 这是我正在使用的 mixin,它基本上从模块中获取每个工厂,创建一个实例,然后测试 .full_c
我有一个模型 LucyGuide,它通过 OneToOneField 扩展了 Django 的 User 模型: class LucyGuide(models.Model): user = m
我有一个模型 LucyGuide,它通过 OneToOneField 扩展了 Django 的 User 模型: class LucyGuide(models.Model): user = m
我正在尝试在 Django 中创建配方/成分模型 在我的 models.py 中我得到了 class Ingredient(models.Model): name = models.CharF
我正在使用 Django 构建一个简单的博客应用程序。我想实现使用表单添加新博客的功能。出现一些问题。 这是我的 models.py from django.db import models from
我知道还有许多其他问题与完全相同的问题有关,但我已经尝试过他们的答案,但到目前为止没有一个有效。 我正在尝试从与其他表有关系的表中删除记录。这些表中的外键是 nullable=false ,因此尝试删
我正在与普通/ guest 用户一起处理我的结帐 View ,但很难解决完整性错误。想法是让访客用户仅使用电子邮件注册才能结帐,我需要将用户电子邮件设置为唯一。 模型.py from django.c
我是一名优秀的程序员,十分优秀!