2014-04-01 22 views
1

processor_for.py如何使用夾層

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} 

models.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 

views.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) 

urls.py

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

create_Book.html

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

這是我在做什麼,但我仍無法訪問的形式。我在哪裏做錯了。會感謝你。請注意代碼中出現了什麼問題?

+0

無法訪問表單???你能解釋更多嗎?我無法在您的urls.py代碼中看到createuser的網址格式。 –

+0

@PrashantGaur請參閱更新代碼 –

+0

請解釋你無法看到只有模板或形式?究竟是什麼問題? –

回答

0

兩個語法問題:

1)總是在「」中定義處理器名稱,如@processor_for("Author")

2)網頁處理器的網址如:

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

按你的代碼和有關你的解釋,請您及時看到你的代碼在urls.py

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

請按照django doc