Django之modelform
Posted 孔扎根
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django之modelform相关的知识,希望对你有一定的参考价值。
在django中内置了form类和model类,当页面中的form值和model字段值完全一样时,此时可以通过model生成一个完全一样的form,Django中的modelForm就因此而生。
目标:
定义Author表,通过modelform提交数据到数据库
创建工程及app
python django-admin.py startproject formstudy cd formstudy python manager.py startapp study
编辑models.py
from __future__ import unicode_literals from django.db import models # Create your models here. TITLE_CHOICES = ( (\'MR\',\'Mr.\'), (\'MRS\',\'Mrs.\'), (\'MS\',\'Ms.\'), ) class Author(models.Model): name = models.CharField(max_length=100) title = models.CharField(max_length=3,choices=TITLE_CHOICES) birth_date = models.DateField(blank=True,null=True) def __unicode__(self): return self.name class Book(models.Model): name = models.CharField(max_length=100) authors = models.ManyToManyField(Author)
在app目录下新建forms.py
修改views.py
修改urls.py
urlpatterns = [ url(r\'^admin/\', admin.site.urls), url(r\'^testModelform/$\', views.testModelForm, name=\'testModelForm\'), ]
在templates目录下创建testModelForm.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Mode测试</title> </head> <body> <form method="post" action=".">{% csrf_token %} <table> <tr> <td> <label for="id_name">作者名:</label> </td> <td> {{ form_info.name }} </td> <td> {{ form_info.name.errors }} </td> </tr> <tr> <td> <label for="id_title">标题:</label> </td> <td> {{ form_info.title }} </td> <td> {{ form_info.title.errors }} </td> </tr> <tr> <td> <label for="id_title">出生日期:</label> </td> <td> {{ form_info.birth_date }} </td> <td> {{ form_info.birth_date.errors }} </td> </tr> <tr> <td> <input type="submit" value="注册"> </td> <td> <input type="reset" value="重置"> </td> </tr> </table> </form> </body> </html>
修改admin.py
from django.contrib import admin import models # Register your models here. class AuthorAdmin(admin.ModelAdmin): list_display = [\'name\',\'title\',\'birth_date\'] admin.site.register(models.Author)
修改settings.py
INSTALLED_APPS = [ \'django.contrib.admin\', \'django.contrib.auth\', \'django.contrib.contenttypes\', \'django.contrib.sessions\', \'django.contrib.messages\', \'django.contrib.staticfiles\', \'study\', ]
启动服务
python manage.py runserver 127.0.0.1:8001
效果图
此时可以通过表单提交数据到数据库了
以上是关于Django之modelform的主要内容,如果未能解决你的问题,请参考以下文章