1

I do not know how to compare if a modelform is equal to a model in django. thank you very much

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')

Here the comparison would be implemented

        ### 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})
lance
  • 11
  • 1

1 Answers1

0

The link in the duplicate flag suggests using save method on object (same can be done in form also). I would personally suggest using signals with pre_save option to check before saving.

Emin Mastizada
  • 1,375
  • 2
  • 15
  • 30