zoukankan      html  css  js  c++  java
  • 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
    

    效果图

    此时可以通过表单提交数据到数据库了

  • 相关阅读:
    了解jQuery
    了解JavaScript
    了解DOM
    了解CSS
    UICollectionViewCell点击高亮效果(附带效果GIF)
    产品迭代缓慢的原因
    了解Web的相关知识
    HTML常用标签
    HTML常用标签效果展示
    了解数据产品经理
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/6652735.html
Copyright © 2011-2022 走看看