2013-10-15 1 views
0

У меня есть приложение с учетной записью имен, которое содержит все модели, виды и формы, которые будут использоваться при регистрации и подписании пользователей.
У меня есть шаблон, который находится за пределами папки приложения, которые предположительно содержат все формы в приложении учетной записи.
У меня возникли проблемы с попыткой получить формы, отображаемые в шаблоне.
Может кто-нибудь мне помочь?
Вот некоторые фрагменты кодов:
Django - импортирующая форма в шаблон за пределами приложения

счет/forms.py

from django import forms 
from django.contrib.auth.models import User 
from django.contrib.auth.forms import UserCreationForm 

# Safe from injection, etc. 
class UserRegistrationForm(UserCreationForm): 
    email = forms.EmailField(required = True) 
    first_name = forms.CharField(max_length=30, required=True) 
    last_name = forms.CharField(max_length=30, required=True) 

    class Meta: 
     model = User 
     fields = ('username','email','password1', 'password2','first_name','last_name') 

    def save(self, commit=True): 
     user = super(UserRegistrationForm, self).save(commit=False) 
     user.email = self.cleaned_data['email'] 
     user.first_name = self.cleaned_data['first_name'] 
     user.last_name = self.cleaned_data['last_name'] 
     if commit: 
      user.save() 

     return user 

счет/view.py

from forms import UserRegistrationForm 
def register_user(request): 
    if request.POST: 
     form = UserRegistrationForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return HttpResponseRedirect('/accounts/register_success') 
    else: 
     form = UserRegistrationForm() 
    args = {} 
    # prevent forgery 
    args.update(csrf(request)) 

    # empty form 
    args['form'] = form 
    return render_to_response('signup.html', args) 

def register_success(request): 
    return render_to_response('signup_success.html') 

и, наконец, шаблон, который не находится в папке учетной записи. Это в той же папке, settings.py

signup.html

{% extends "base.html" %} 

{% block content %} 

<form action="" method="post"> {% csrf_token %} 
    <ul> 
     {{accounts.form.as_ul}} 
    </ul> 

    <input type="submit" name="submit" value="Register"> 
</form> 

{% endblock %} 

UPDATE

После получения разрешения для перемещения шаблона из менеджера проекта, я перенес ее в бухгалтерию/шаблон, и изменен рендеринг на адрес ответа. У меня есть новая проблема с формой, не представляющей сейчас. OMG, что происходит?

ответ

0

Хорошо, проблема кроется в моем файле signup.html. Он должен иметь скрипт для onclick, и форма должна иметь идентификатор.

{% extends "base.html" %} 

{% block content %} 

<form action="" method="post" id="form"> {% csrf_token %} 
    <ul> 
     {{accounts.form.as_ul}} 
    </ul> 

    <input type="submit" name="submit" value="Register" onclick="submit()"> 
</form> 
<script> 
    function submit() {document.forms["form"].submit();} 
</script> 
{% endblock %} 
0

Шаблон не должен находиться в том же каталоге, как settings.py.

Он должен быть в каталоге в приложении учетных записей: accounts/templates/signup/html.

Если вы правильно настроили проект Django, Django должен забрать шаблон после перезапуска веб-сервера.

+0

Я переместил шаблон в папку учетных записей/шаблонов.
формы пока не отображаются: / – ImNoob

0

как я вижу, вы проходите form переменная в шаблон, , но вы пытаетесь использовать accounts.form.

Надеюсь, это поможет.

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