2017-04-10 79 views
1

我不知道如何比较模型是否与django中的模型相同。 非常感谢你如何比较模型中的变化与模型(django)

models.py

class Person(models.Model): 
    name = models.CharField(max_length=45) 
    lastname = models.CharField(max_length=45) 
    dni = models.BigIntegerField() 
    email = models.EmailField(max_length=30) 
    status = models.BooleanField() 
    departament = models.ForeignKey(Departament) #char 

forms.py

class Form_Person(forms.ModelForm): 
    class Meta: 
     model = models.Person 
     fields = ['name', 'lastname', 'dni', 'address', 'phone', 'email', 'position', 'status', 'departament'] 

views.py

@auth.decorators.login_required(login_url='login') 
def persons_person(request,id='id'): 
    page_name = 'Persons' 
    try: 
     person = models.Person.objects.get(id=id) 
     list_departaments = models.Departament.objects.all() 
     list_departaments = list_departament.exclude(name = person.departament) 
     if request.method == 'POST': 
      form_person = forms.Form_Person(request.POST, initial='person') 

这里的比较将实施

 ### code to compare ### 
     # if form_persona.is_valid() and form_person.has_changed(): #Something like that 
     #  ***how to compare*** 
     #  form_person.save()  
    except models.Person.DoesNotExist as e: 
     person = None 
     list_departaments = None 
return render(request, 'app/persons/person.html', 
      {'page_name':page_name, 
       'person':person, 
       'list_departaments':list_departaments}) 
+0

1.不要使用字符串作为id的默认值,最好是使用None。 –

+0

'initial ='person''也是错误的,用户'初始=人'传递具有该ID的人。 –

+0

[Django:保存时,如何检查字段是否已更改?]的可能重复(http://stackoverflow.com/questions/1355150/django-when-saving-how-can-you-check-if-一个场-具有改变的) –

回答

0

在重复标志的链接建议使用保存方法上的对象(同一可以做在形式也)。我个人建议使用带pre_save选项的signals在保存前检查。