[英]How to fix “peewee.IntegrityError: NOT NULL constraint failed: fiskalna.user_id”
[英]peewee.IntegrityError: NOT NULL constraint failed
我正在嘗試創建一個關系數據庫,但是在調用構造函數時,出現以下錯誤peewee.IntegrityError: NOT NULL constraint failed language.content_id
。 我嘗試了許多不同的方法來完成此操作,但是在調用models.Language.create()
時出現問題。 插入表中的其他調用工作正常。 任何想法我該如何解決? 請幫忙。
這是我的代碼:
models.py
class User(UserMixin, Model):
username = CharField(unique=True)
email = CharField(unique=True)
password = CharField(max_length=100)
joined_at = DateTimeField(default=datetime.datetime.now)
is_admin = BooleanField(default=False)
class Meta:
database = DATABASE
order_by = ('-joined_at',)
def get_post(self):
return Post.select().where(Post.user == self)
@classmethod
def create_user(cls, username, email, password, admin=False):
try:
cls.create(
username=username,
email=email,
password=generate_password_hash(password),
is_admin=admin)
except IntegrityError:
raise ValueError("User already exists")
class Post(Model):
content = TextField()
class Meta:
database = DATABASE
class Category(Model):
category = TextField()
class Meta:
database = DATABASE
class Language(Model):
timestamp = DateTimeField(default=datetime.datetime.now)
content = ForeignKeyField(rel_model=Post, related_name='contents')
category = ForeignKeyField(rel_model=Category, related_name='topic')
user = ForeignKeyField(
rel_model=User,
related_name='units'
)
language = TextField()
class Meta:
database = DATABASE
app.py
@app.route('/new_post', methods=('GET', 'POST'))
@login_required
def post():
form = forms.PostForm()
if form.validate_on_submit():
models.Post.create(content=form.content.data)
models.Category.create(category=form.choice.data.strip())
models.Language.create(user=g.user._get_current_object(),
language=form.language.data.strip())
flash("Message posted! Thanks!", "success")
return redirect(url_for('index'))
return render_template('post.html', form=form)
調用Language.create()時需要設置content=some_post_obj
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.