【问题标题】:How to compare the changes in a modelform with model (django)如何将模型表单中的更改与模型(django)进行比较
【发布时间】:2017-09-05 09:11:16
【问题描述】:

我不知道如何比较模型形式是否等于 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})

【问题讨论】:

标签: python django python-3.x django-models django-forms


【解决方案1】:

重复标志中的链接建议在对象上使用保存方法(也可以在表单中完成)。我个人建议在保存前使用 signals 和 pre_save 选项进行检查。

【讨论】:

    猜你喜欢
    • 2011-04-02
    • 1970-01-01
    • 2019-06-30
    • 2016-01-18
    • 1970-01-01
    • 2017-04-02
    • 2023-01-25
    • 2019-09-10
    • 1970-01-01
    相关资源
    最近更新 更多