Я новичок во Фляске, поэтому надеялся на некоторую помощь, когда наткнулся на дорожный блок.
Цель: мне нужно, чтобы пользователи могли входить в систему и проходить опрос каждые две недели. Это будет тот же опрос, который они проведут, и мне нужно будет иметь возможность различить, какой опрос был проведен на неделе 1, неделе 2 и т. Д. Каждый пользователь завершит опрос в другую дату, так как это две недели с момента его присоединения, а не все, кто завершает опрос. опрос на точно такую же дату.
Мой текущий мыслительный процесс: я создал один класс для пользователя и один класс для опроса в моем models.py и соединил их столбцом db.relationship (). У меня есть wtf-форма, которую заполняет пользователь (поля соответствуют атрибутам в классе опроса). Вот код, если он помогает:
from project import db,login_manager
from werkzeug import generate_password_hash, check_password_hash
from flask_login import UserMixin
from datetime import datetime
@login_manager.user_loader
def load_user(user_id):
return User.query.get(user_id)
class User(db.Model, UserMixin):
__tablename__ = 'users'
#columns of database
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String, unique=True, index=True)
username = db.Column(db.String, unique=True, index=True)
password_hash = db.Column(db.String(128))
survey = db.relationship('Survey', backref='respondee', lazy=True)
def __init__(self, email, username, password):
self.email= email
self.username = username
self.password_hash = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password_hash, password)
def __repr__(self):
return f"Username {self.username}"
class Survey(db.Model):
users = db.relationship(User)
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
# what the respondee needs to provide when completing the questionnaire (not finished as I'm waiting on the actual questions at the moment
def __init__(self, user_id, )
Возможно, это не правильная логика, но я не уверен, что лучший способ.
Буду признателен, если кто-то направит меня в правильном направлении относительно:
Правильно ли я считаю, что столбцы класса Survey () должны отражать вопросы формы Flask
Учитывая, что пользователи будут проводить один и тот же опрос каждые две недели, каков наилучший способ провести различие по завершении каждого опроса. Пользователи будут заполнять опрос в разные даты, так как через две недели они присоединятся.
Спасибо, ребята.