На Гитхабе нету. Могу привести ещё раз запостить всё, что получилось:
Приложение userform
Модель:
# -*- coding: utf-8 -*-
from django.db import models
from django.forms import ModelForm
# Create your models here.
class Join(models.Model):
class Meta():
db_table = 'expert_request'
verbose_name = u'Запрос на эксперта'
verbose_name_plural = u'Запросы на экспертов'
user_expert = models.CharField(max_length=100, verbose_name=u'Эксперт или специализация')
user_name = models.CharField(max_length=100, verbose_name=u'Имя пользователя')
user_cost = models.CharField(max_length=100, verbose_name=u'Цена пользователя')
user_email = models.EmailField(verbose_name=u'E-mail пользователя')
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
def __unicode__(self):
return self.user_email
Форма forms.py
в папке риложения userform
from django import forms
from userform.models import Join
class JoinForm(forms.ModelForm):
class Meta:
model = Join
Вьюшка
from django.shortcuts import render
# Create your views here.
from userform.forms import JoinForm
def userform(request):
form = JoinForm(request.POST or None)
if form.is_valid():
new_join = form.save(commit=False)
new_join.save()
context = {"form": form}
template = "userform.html"
return render(request, template, context)
Темплейт userform.html
<form method="POST" action=""> {% csrf_token %}
{{ form.as_p}}
<input type="submit" value="Join" />
</form>
Файл form.py
из папки tamplatetags
#! coding: utf-8
from django import template
from userform.forms import JoinForm
register = template.Library()
@register.inclusion_tag("userform.html", takes_context=True)
def userform(context):
request = context['request']
return {
'form': JoinForm(request.POST or None)
}
Ну и urls.py
на всякий случай
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
(r'^tinymce/', include('tinymce.urls')),
url(r'^$', 'expert.views.index', name='index'),
url(r'^(\d+)/?$', 'expert.views.index'),
url(r'^call/$', 'userform.views.userform', name='call'),
)
Если открывать форму с её страницы call
, заполнить и отправить - в базу попадает.
Если открыть страницу и вставить тэгом - заполняется, отправляется, но в базу не попадает...