django_cvb и FVB

CVB вид т.е. передачи и опубликовать запросы Funtion вид класса и в двух направлениях

Формулировки не разделены передние и задние концы, определяют HTML (form.html), логику записи (CVB & FvB) в представлении

Примечание : Примечание CSRF проблемы, если данные , представленные будут сообщенным повторяться несколько раз 403, два вида решений

1. В settings.py-MIDDLEWARE- CSRF (четвертый ряд) прокомментировал

2. Запись {% csrf_token%} в form.html 

form.html код

<! DOCTYPE HTML > 
< HTML языки = "EN" > 
< голова > 
    < мета - кодировка = "UTF-8" > 
    < название > Заголовок </ название > 
</ голова > 
< тело > 
< форма действия = "/ add_article /" Метод = «пост» >
{% Csrf_token%}
    Название: < входной тип = «текст» название = «название» > 
    убывание: < входной тип = «текст» название = «убывание» > 
    Содержание: < входной тип = «текст» имя = «содержание» > 
    категория: < выберите имя = "категория" >
        {% Для с в categorys%}
            < Параметр значение = "{{c.id}}" > {{c.name}} </ опции >
        {% ENDFOR%}
    </ Выберите > 
    < входной тип = "представить" значение = "提交" > 
</ образуют > 
</ тело > 
</ HTML >

views.py код

# Функция FVB方式
Защита add_article (запрос):
     если request.method == ' GET ' :
        categorys = Category.objects.all ()
         возвращают визуализации (запрос, ' form.html ' , местные жители ())
     еще :
        Название = request.POST.get ( ' название ' )
        убывание = request.POST.get ( ' по убыванию ' )
        Содержание = request.POST.get ( ' содержание ' )
        категория = request.POST.get ( ' категория ' )
        статья = статья (название = название, убывание = убывание, category_id = категория, содержание = содержание)
        article.save ()
        вернуться HttpResponseRedirect ( ' / Blog ' ) # Перенаправление


# Класса CVB方式
класс ArticleView (View):
     Защита получить (я, запрос):
        categorys = Category.objects.all ()
         возвращают визуализации (запрос, ' form.html ' , местные жители ())
     Защиту пост (я, запрос):
        Название = request.POST.get ( ' название ' )
        убывание = request.POST.get ( ' по убыванию ' )
        Содержание = request.POST.get ( ' содержание ' )
        категория = request.POST.get ( ' категория ' )
        статья = статья (название = название, убывание = убывание, category_id = категория, содержание = содержание)
        article.save ()
        вернуться HttpResponseRedirect ( ' / Blog ' )   # Перенаправление

urls.py

от django.contrib импорта администратора
 из django.urls импорта путь
 из user.views импорта индекса, тест, блог, подробно, add_article, ArticleView

urlpatterns = [
    путь ( ' администратора / ' , admin.site.urls),
    Путь ( ' Индекс / ' , индекс), # добавить доступ к URL, индекс / может быть изменен, индексный метод views.py по 
    пути ( ' Test / ' , Test),
    путь ( ' блог / ' , блог),
     # путь ( 'категория / <Int: идентификатор>', категория), 
    путь ( ' подробнее / ' , подробно),
     # путь ( 'add_article /', add_article), # FVB方式 
    путь ( ' add_article / ' , ArticleView.as_view ()), # CVB方式


]

рекомендация

отwww.cnblogs.com/mhmh007/p/12153980.html