Django筆記10--Django Modelform
阿新 • • 發佈:2018-12-12
models.py中對應的表class
class user_list(models.Model): user_name=models.CharField(unique=True, max_length=40) full_name=models.CharField(unique=True, max_length=40) email_address=models.CharField(max_length=40) dept_list=models.ForeignKey('dept_list', on_delete=None, to_field='id', ) def__str__(self): return self.full_name class pc_list(models.Model): host_name=models.CharField(max_length=64) service_tag=models.CharField(max_length=45) host_type=models.CharField(max_length=45) host_model=models.CharField(max_length=45) host_spec=models.CharField(max_length=45) price=models.FloatField(default=0) receive_date=models.DateField(auto_now_add =False, default='2018-01-01') user_list = models.ForeignKey('user_list', to_field='id', related_name='user_list_full_name', on_delete=None, ) seat_no = models.IntegerField(default=14000) host_status=models.CharField(max_length=45) studio = models.CharField(max_length=45, default='-') location=models.CharField(max_length=45, default='CNSHZ1') asset_code = models.IntegerField(default=1) remark=models.TextField(max_length=200, default='-')
新建一個form.py, 內容如下:
from django import forms from django.forms import fields from deviceman.models import user_list, pc_list,dept_list class UserModelForm(forms.ModelForm): class Meta: model = user_list # 與models建立了依賴關係 fields = "__all__" class PcModelForm(forms.ModelForm): class Meta: model = pc_list # 與models建立了依賴關係 fields = "__all__"
在views.py裡新建對應的def
def usermodelform_test(request): if request.method == "GET": obj = UserModelForm() return render(request, "userform.html", {'obj': obj}) elif request.method == "POST": obj = UserModelForm(request.POST) print(obj.is_valid()) # 這是方法,別忘記了加括號 print(obj.cleaned_data) print(obj.errors) return render(request, "userform.html", {'obj': obj}) def pcmodelform_test(request): if request.method == "GET": obj = PcModelForm() return render(request, "userform.html", {'obj': obj}) elif request.method == "POST": obj = PcModelForm(request.POST) print(obj.is_valid()) # 這是方法,別忘記了加括號 print(obj.cleaned_data) print(obj.errors) if obj.is_valid(): obj.save() else: print(mf.errors.as_json()) return render(request, "userform.html", {'obj': obj})模板如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>django model form</title> </head> <body> <body> <form action="pcmodelform" method="POST" novalidate="novalidate"> {% csrf_token %} {{ obj.as_p }} <input type="submit" value="提交"> </form> </body> </body> </html>