代码之家  ›  专栏  ›  技术社区  ›  Tameen Malik

如何使用夹层

  •  1
  • Tameen Malik  · 技术社区  · 11 年前

    处理器_副本

    from django import forms
    from django.http import HttpResponseRedirect
    from mezzanine.pages.page_processors import processor_for
    from .models import Book
    
    class BookForm(forms.Form):
        name = forms.CharField()
        email = forms.EmailField()
    
    @processor_for(Author)
    def author_form(request, page):
        form = BookForm()
        if request.method == "POST":
            form =BookForm(request.POST)
            if form.is_valid():
                # Form processing goes here.
                redirect = request.path + "?submitted=true"
                return HttpResponseRedirect(redirect)
        return {"form": form}
    

    型号.py

    from django.db import models
    from time import time
    class Book(models.Model):
       book_name= models.CharField(max_length=200, unique = True)
        def __unicode__(self):
            return self.book_name
    

    视图.py

    def create_book (request):
        if request.POST:
            form = BookForm(request.POST, request.FILES)
            if form.is_valid():
                form.save()
                return HttpResponseRedirect('/all/')
        else:
            form = BookForm()
        args= {}
        args.update(csrf(request))
        args['form'] = form
        return render_to_response('create_Book.html', args)
    

    网址.py

    urlpatterns += patterns('',
        url(r'^/xyz/$', create_book))
    

    创建_Book.html

    <form action="/xyz/" method="post" enctype="multipart/form-data">{% csrf_token %}
    {{form.as_ul}}
    <input type="submit" name="submit" value="create"/>
    </form>
    

    这是我正在做的,但我仍然无法访问表单。我做错了什么。我会感激你的。请标记代码中的错误?

    2 回复  |  直到 11 年前
        1
  •  0
  •   Prashant Gaur    11 年前

    根据您的代码和您的解释,请在urls.py中查看您的代码

    urlpatterns += patterns('',
        url(r'^xyz/$', create_book))       # you should write like ^xyz/$
    

    请关注 django doc

        2
  •  0
  •   Tameen Malik    11 年前

    两个语法问题:

    1) 始终在“”中定义处理器名称,如 @processor_for("Author")

    2) 页面处理器的URL,如:

     url("^xyz/$", "mezzanine.pages.views.page", {"slug": "Author"},  name="Author"),