2016-04-15 11 views
0

Iam folgte der Django-Tutorial-Reihe von trydjango: Kodierung für Unternehmer, und war verwirrt mit dem, was "Modell" und "Feld" in Django-Form tun.django: Was machen Modell und Felder in der Meta-Klasse?

models.py

from django.db import models 
    # Create your models here. 
    class SignUp(models.Model): 
     email=models.EmailField() 
     full_name=models.CharField(max_length=55, blank=True, null=True) 
     timestamp = models.DateTimeField(auto_now_add=True, auto_now=False) 
     updated=models.DateTimeField(auto_now_add=False, auto_now=True) 

     def __unicode__(self): 
      return self.email 

forms.py

from django import forms 
    from .models import SignUp 

    class SignUpForm(forms.ModelForm): 
     class Meta: 
      model=SignUp # ? 
      fields=['full_name','email'] # ? 

     def clean_email(self): 
      email=self.cleaned_data.get('email') 
      email_base,provider=email.split("@") 
      domain,extension=provider.split(".") 
      if not domain == 'USC': 
       raise forms.ValidationError("Please make sure you use your USC email") 
      if not extension == "edu": 
       raise forms.ValidationError("Please use valide edu address") 
      return email 

     def clean_full_name(self): 
      full_name = self.cleaned_data.get('full_name') 
      #write validation code 
      return full_name 

Antwort

1

Sie sind eine spezielle Form-Klasse mit dem Sie ein neues Formular auto-magisch von der angegebenen Modellklasse erstellen können.

Das Modellfeld zeigt, aus welchem ​​Modell Ihr Formular erstellt werden soll, und das Feld Felder zeigt, welche Felder aus der Model-Klasse in Ihrem neuen Formular angezeigt werden.

Link zu den Dokumenten: https://docs.djangoproject.com/en/1.9/topics/forms/modelforms/

Verwandte Themen