0
0 комментариев

У меня есть две модели:
1)Модель пользователей

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    nickname = db.Column(db.String(100), index=True, unique=True)
    email = db.Column(db.String(120), index=True, unique=True)
    password = db.Column(db.String(100), index=True, unique=True)
    role = db.Column(db.SmallInteger, default=ROLE_USER)
    posts = db.relationship('Entry', backref='author', lazy='dynamic')
    about_me = db.Column(db.String(140))
    last_seen = db.Column(db.DateTime)
    pwdhash = db.Column(db.String(100))

2)Модель записей:

сlass Entry(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(80))
    text = db.Column(db.Text)
    pub_date = db.Column(db.DateTime)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

Также есть вьюшка пользователя:

@app.route('/user/<nickname>', methods=['GET', 'POST'])
@login_required
def user(nickname):
    title = 'Ваша страница'
    user = User.query.filter_by(nickname=nickname).first_or_404()
    if user == None:
        flash('Пользователь ' + nickname + ' не найден.')
        return redirect(url_for('index'))
    post = user.posts.order_by(Entry.pub_date.desc()).all()
    return render_template('user.html', title=title, user=user, post=post)

И вьюшка добавления записи:

@app.route('/add', methods=['GET', 'POST'])
@login_required
def add():
    title = 'Добавление стиха'
    form = EntryForm()
    if form.validate_on_submit():
        add_entry = Entry(form.title.data, form.text.data, form.pub_date.data)
        db.session.add(add_entry)
        db.session.commit()
        flash('Вы добавили новый стих')
        return redirect(url_for('user', nickname=g.user.nickname))
    return render_template('entry.html', title=title, form=form)

шаблон пользователя:

{% for post in posts %}
    <p>{{ entry.title }}</p>
    <pre>{{ entry.text }}

{{ entry.pub_date }}

{% endfor %}
[/apcode]

Шаблон добавления записи:

{% block content %}
<form class=login-form method=post action=add>
<h1 align=center>Заполните поля, для регистрации вашего стиха:</h1>
    <p>
    {{ form.hidden_tag() }}
    <div class=field>
    <p>{{ form.title.label }}:</p> <p>{{ form.title(size=25) }}</p>
    {% for error in form.errors.title %}
        <br><span style="color: red;">[{{ error }}]</span>
    {% endfor %}
 
    <div class=field>
    <p>{{ form.text.label }}:</p> <p>{{ form.text(cols=35, rows=20) }}
</p>
    {% for error in form.errors.text %}
        <br><span style="color: red;">[{{ error }}]</span>
    {% endfor %}
    </div>
 
    <div class=field>
    <p>{{ form.pub_date.label }}:</p> <p>{{ form.pub_date(size=20) }}</p>
        <input type="submit" value="Разместить стих">
    </div>
</form>
{% endblock %}

Так вот вопрос, как мне получить список записей ? Как сделать привязку записей к пользователю через вьюшку?

Изменен статус публикации
Добавить комментарий