Seite 1 von 1

bottle und POST

Verfasst: Donnerstag 8. Mai 2014, 20:57
von djangofish
Hallo Gemeinde,

auch heute habe ich wieder eine kleine Nuss für euch zu knacken. Folgendes Problem habe ich, ich schreibe an einer kleinen Blogsoftware und beim Speichern eines neuen Beitrag passiert nichts, wenn ich auf speichern klicke. Es gibt keine Fehlermeldung oä.,...es passiert einfach nix.

HTML-Schnipsel

Code: Alles auswählen

%include('header.tpl')

<p>Neue Bastelgeschichte hinzufügen:</p>
<form action="/article/new" method="POST">
	<h4>Titel</h4>
	<input type="text" size="250" maxlength="250" name="title"><br>
	<h4>Untertitel</h4>
	<input type="text" size="250" maxlength="250" name="subtitle"><br>
	
	<h4>Tags</h4>
	<input type="text" size="250" maxlength="250" name="tags" placeholder="Trennzeichen ist ';'"><br>

	<form name="page_form" action="/articlenew" method="POST">

          <h4>Seite</h4>
          <p>
             <select name='page_list' id = "pages_list">
             %for page in pages:
               <option value = "{{page.id}}">{{page.title}}</option>
             %end
             </select>
          </p>

    </form>

	<h4>Inhalt</h4>
	<textarea name="content" cols="250" rows="10"/></textarea><br>
	<h4>Veröffentlichen</h4>
	<input type="datetime-local" name="release_datetime">
	<input type="submit" name="save" value="save">
</form>
%include('footer.tpl')
Und hier noch die Pythonfunktion

Code: Alles auswählen

@route('/articlenew', method='POST')
@route('/articlenew', method='GET')
@view('new_article')
def new_article():

    if request.POST.get('save','').strip():
        title = request.POST.get('title', '').strip()
        subtitle = request.POST.get('subtitle', '').strip()
        tags = request.POST.get('tags', '').strip().split(';')
        content = request.POST.get('content', '').strip()
        page = request.POST.get('page_list','').strip()
        article = Article(title=title,subtitle=subtitle,page_id=session.query(Page.id).filter_by(title=page).scalar(),content=content)

        session.add(article)
        session.commit()
        tags = set(tags) #remove double entries
        article_id = session.query(Article.id).order_by(Article.id.desc()).first()

        for tag in tags:

            if not session.query(Tag.id).filter_by(name=tag).scalar():
                
                new_tag = Tag(name=tag)
                session.add(new_tag)
                #session.commit()
                session.execute(tag_association_table.insert(), {"tag_id": session.query(Tag.id).filter_by(name=tag).scalar(), "article_id": article_id})
                session.commit()

            else:
                
                session.execute(tag_association_table.insert(), {"tag_id": session.query(Tag.id).filter_by(name=tag).scalar(), "article_id": article_id})
                session.commit()
        
    return {'get_url' : url, 'title' : APP_TITLE, 'pages' : pages}
Kann mir einer einen Tipp geben?

Danke!

Re: bottle und POST

Verfasst: Donnerstag 8. Mai 2014, 21:25
von BlackJack
@djangofish: 'articlenew' != 'article/new'

Re: bottle und POST

Verfasst: Donnerstag 8. Mai 2014, 21:26
von djangofish
richtig und form in form ist auch doof:)

danke!