簡體   English   中英

peewee.IntegrityError:NOT NULL約束失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM