Tôi đang sử dụng hướng dẫn này làm hướng dẫn. http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-databaseVấn đề cơ sở dữ liệu Flask
Tôi muốn có Danh mục có thể phát huy nhiều Sản phẩm. Tương tự như cách Người dùng có nhiều Bài đăng.
khi tôi mở ra dịch viên python và cố gắng tạo ra một thể loại
>>>from app import db, models
>>>u = models.Category(name="Test")
tôi nhận được lỗi này
/sqlalchemy/orm/properties.py", line 1387, in _generate_backref
self, mapper))
sqlalchemy.exc.ArgumentError: Error creating backref 'category' on relationship 'Category.products': property of that name exists on mapper 'Mapper|Product|product'
Vì vậy, có một vấn đề với backref. Trong hướng dẫn (và tôi đã thử nó với mã của anh ta), anh ta có thể tạo một User với cú pháp tương tự.
Tôi thậm chí đã thử sử dụng tất cả các tệp của mình và đã tạo và di chuyển cơ sở dữ liệu mới và tôi gặp lỗi tương tự.
Đây là tập tin models.py tôi:
from app import db
WR_IP_NO = 0
WR_IP_YES = 1
class Category(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(64), unique = True)
products = db.relationship('Product', backref = 'category', lazy = 'dynamic')
def __repr__(self):
return '<Category %r>' % (self.name)
class Product(db.Model):
id = db.Column(db.Integer, primary_key = True)
category = db.Column(db.String(64), db.ForeignKey('category.id'))
courseName = db.Column(db.String(120), unique = True)
ip = db.Column(db.SmallInteger, default = WR_IP_YES)
duration = db.Column(db.Integer)
productRev = db.Column(db.String(64))
#use when database is updated?
releaseDate = db.Column(db.DateTime)
def __repr__(self):
return '<Category> %r>' % (self.courseName)
Cảm ơn bạn rất nhiều – Siecje
Điều này có thực thi đổi tên danh mục trường cơ sở dữ liệu SQL thành category_id không? – Herbert