2013-02-26 2 views
2

Я пытаюсь внедрить шаблон для добавления веб-страниц VIEW, ADD и EDIT с подключаемыми представлениями. Как использовать значение URL как?Как передать значение подключаемому представлению?

Это код, который я пытаюсь перевести на подключаемые виды.

@app.route('/edit/category/<category>', methods=['GET', 'POST']) 
def editCategory(category): 
    form = forms.AddCategory() 
    form.name.data = category 
    if form.validate_on_submit(): 
     newName = form.name.data 
     database.editCategory(name = category, newName = newName) 
     #view single category? 
     return redirect('/view/categories/') 
    return render_template('edit-category.html', category = category, form = form) 

вставного View Code

class ListView(View): 

    def getTemplate_name(self): 
     raise NotImplementedError() 

    def render_template(self, context): 
     return render_template(self.get_template_name(), **context) 

    def dispatch_request(self): 
     context = self.get_context() 
     return self.render_template(context) 

class CategoryView(ListView): 

    def get_template_name(self): 
     return 'categories.html' 

    def get_objects(self): 
     return models.Category.query.all() 

    def get_form(self): 
     return forms.AddCategory() 

    def get_context(self): 
     return {'categories': self.get_objects(), 'form': self.get_form()} 

app.add_url_rule('/view/categories', view_func=CategoryView.as_view('category')) 

class EditCategory(ListView): 

    def get_template_name(self): 
     return 'edit-category.html' 

    def get_form(self, category): 
     form = forms.AddCategory() 
     form.name.data = category 
     return form 

    def get_context(self): 
     return {'form': self.get_form()} 

app.add_url_rule('/edit/category/<category>', view_func=EditCategory.as_view('category')) 

ответ

0

Вам необходимо переопределить метод dispatch_request в EditCategory классе, этот метод имеет значение URL-адрес, переданное ему.

class EditCategory(View): 

    ... 

    def get_context(self, category): 
     return {'form': self.get_form(category)} 

    def dispatch_request(self, category): 
     context = self.get_context(category) 
     return self.render_template(context) 

app.add_url_rule('/edit/category/<category>', view_func=EditCategory.as_view('category')) 

Как в стороне, я думаю, вам лучше с оригинальными украшенных функций зрения в этом случае очень мало Общность между функциональностью viewCategory и editCategory

Смежные вопросы