parent
2f83a3bd30
commit
cac3d691cf
10 changed files with 91 additions and 0 deletions
@ -0,0 +1,3 @@ |
|||||||
|
from django.contrib import admin |
||||||
|
|
||||||
|
# Register your models here. |
@ -0,0 +1,6 @@ |
|||||||
|
from django.apps import AppConfig |
||||||
|
|
||||||
|
|
||||||
|
class FormDemoConfig(AppConfig): |
||||||
|
default_auto_field = 'django.db.models.BigAutoField' |
||||||
|
name = 'form_demo' |
@ -0,0 +1,25 @@ |
|||||||
|
from django import forms |
||||||
|
from django.core.exceptions import ValidationError |
||||||
|
from models import * |
||||||
|
|
||||||
|
|
||||||
|
def age_validate(age): |
||||||
|
if age <= 0: |
||||||
|
raise ValidationError('年龄错误') |
||||||
|
elif age > 150: |
||||||
|
raise ValidationError('老妖精') |
||||||
|
|
||||||
|
|
||||||
|
# 用户信息表单 |
||||||
|
class UserInfoForm(forms.Form): |
||||||
|
STATUS = ((None, '请选择'), (0, '正常'), (1, '无效')) |
||||||
|
username = forms.CharField(label="用户名", min_length=6, widget=forms.widgets.TextInput( |
||||||
|
attrs={'class': 'form-control', 'placeholder': '请输入用户名'})) |
||||||
|
password = forms.CharField(label='密码', min_length=6, max_length=10, |
||||||
|
widget=forms.widgets.PasswordInput(attrs={'class': 'password'}, render_value=True), |
||||||
|
help_text='密码长度为6-10个字符') |
||||||
|
age = forms.IntegerField(label='年龄', initial=1, min_value=1, max_value=150, validators=[age_validate]) |
||||||
|
mobile = forms.CharField(label='手机号码', min_length=11, max_length=11) |
||||||
|
status = forms.ChoiceField(label='状态', choices=STATUS, widget=forms.widgets.Select) |
||||||
|
# status = forms.ModelChoiceField(queryset=UserStatus.objects.all(), empty_label='请选择') |
||||||
|
createdate = forms.DateField(label='创建日期', required=False, input_formats=["%Y-%m-%d"]) |
@ -0,0 +1,33 @@ |
|||||||
|
# Generated by Django 4.2.3 on 2023-07-13 00:41 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='UserBaseInfo', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='用户id')), |
||||||
|
('username', models.CharField(max_length=30, verbose_name='用户名')), |
||||||
|
('password', models.CharField(max_length=20, verbose_name='密码')), |
||||||
|
('age', models.IntegerField(verbose_name='年龄')), |
||||||
|
('mobile', models.CharField(max_length=20, verbose_name='手机号')), |
||||||
|
('status', models.CharField(max_length=1, verbose_name='状态')), |
||||||
|
('create_date', models.DateField(auto_now_add=True, verbose_name='创建时间')), |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='UserStatus', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='状态id')), |
||||||
|
('status', models.CharField(max_length=10, verbose_name='状态')), |
||||||
|
], |
||||||
|
), |
||||||
|
] |
@ -0,0 +1,17 @@ |
|||||||
|
from django.db import models |
||||||
|
|
||||||
|
|
||||||
|
# Create your models here. |
||||||
|
class UserBaseInfo(models.Model): |
||||||
|
id = models.AutoField(verbose_name='用户id', primary_key=True) |
||||||
|
username = models.CharField(verbose_name='用户名', max_length=30) |
||||||
|
password = models.CharField(verbose_name='密码', max_length=20) |
||||||
|
age = models.IntegerField(verbose_name='年龄') |
||||||
|
mobile = models.CharField(verbose_name='手机号', max_length=20) |
||||||
|
status = models.CharField(verbose_name='状态', max_length=1) |
||||||
|
create_date = models.DateField(verbose_name='创建时间', auto_now_add=True) |
||||||
|
|
||||||
|
|
||||||
|
class UserStatus(models.Model): |
||||||
|
id = models.AutoField(verbose_name='状态id', primary_key=True) |
||||||
|
status = models.CharField(verbose_name='状态', max_length=10) |
@ -0,0 +1,3 @@ |
|||||||
|
from django.test import TestCase |
||||||
|
|
||||||
|
# Create your tests here. |
@ -0,0 +1,3 @@ |
|||||||
|
from django.shortcuts import render |
||||||
|
|
||||||
|
# Create your views here. |
Loading…
Reference in new issue