надеюсь, все хорошо.У меня возникают трудности при попытке выяснить, как написать эту функциональность БД с помощью flask и SQLALCHEMY.
Я хочу иметь возможность зарегистрировать пользователя на сайте, который уже будет существовать в базе данных.
При их регистрации я хочу, чтобы маршрут мог назначать этого пользователя для модели сайта в БД. Причина, по которой я хочу это сделать, заключается в том, что я могу позже отправить сообщение всем пользователям, подключенным к определенному сайту, или сообщение всем пользователям для всех сайтов.
Этомои модели пользователей и сайтов в настоящее время :
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
site = db.Column(db.String())
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(100), unique=True, nullable=False)
password = db.Column(db.String(60), nullable=False)
adminstatus = db.Column(db.Boolean)
user_data = db.relationship('Rma', backref='userdata', lazy=True)
# sites = db.relationship('Sites', secondary=usertosite, backref=db.backref('sites', lazy='dynamic'))
def __repr__(self):
return f"User('{self.username}, '{self.email}')"
class Sites(db.Model):
id = db.Column(db.Integer, primary_key=True)
sitename = db.Column(db.String(), nullable=False)
contractstart = db.Column(db.String(), nullable=False)
contractend = db.Column(db.String(), nullable = False)
hwkey = db.Column(db.String(), nullable=False)
stations = db.Column(db.String(), nullable=False)
printers = db.Column(db.String(), nullable = False)
remprinters = db.Column(db.String(), nullable = False)
bof = db.Column(db.Boolean())
processor = db.Column(db.String(), nullable = False)
giftopt = db.Column(db.String(), nullable = False)
Вот моя регистрационная форма
# REGISTER NEW USER
@app.route('/register', methods=['POST', 'GET'])
@login_required
def register():
form = RegistrationForm()
if form.validate_on_submit():
hashed_pw = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
user = User(site = form.site.data, username = form.username.data, email = form.email.data, password = hashed_pw, adminstatus= form.admin_status.data)
db.create_all()
db.session.add(user)
db.session.commit()
flash(f"{form.username.data} has been added!")
return redirect(url_for('dash'))
return render_template('register.html', name = 'login', form=form)
Я не уверен, как я могу это сделать, учитываяобычно, когда я добавляю форму в базу данных, я добавляю все элементы формы в конкретную модель.Если я попытаюсь установить отношение один ко многим, мне придется назначить модель Сайтов со всеми ее элементами вместе с конкретным пользователем, который не является идеальным, поскольку сайт уже будет создан в БД.Я супер нуб и, возможно, я пропускаю некоторые шаги, но, пожалуйста, помогите, если это возможно.Спасибо, ребята.