django prevent empty model being saved












0














Is there a way to stop a model in django allowing an empty model to be saved?



e.g. I have a simple contact form



class Contact(models.Model):

alphabetical = RegexValidator(r'^[a-zA-Z]*$', 'Only alphabetical characters
are allowed', 'Invalid input')

name = models.CharField(max_length=200, validators=[alphabetical])
email = models.EmailField(validators=[EmailValidator, ])
subject = models.CharField(max_length=200)
message = models.CharField(max_length=250)
created_date = models.DateTimeField(auto_now_add=True)


How can I prevent an empty model being saved? e.g. in the django shell I can do



contact = Contact()
contact.save()


This gives a model with all blank values saved.










share|improve this question



























    0














    Is there a way to stop a model in django allowing an empty model to be saved?



    e.g. I have a simple contact form



    class Contact(models.Model):

    alphabetical = RegexValidator(r'^[a-zA-Z]*$', 'Only alphabetical characters
    are allowed', 'Invalid input')

    name = models.CharField(max_length=200, validators=[alphabetical])
    email = models.EmailField(validators=[EmailValidator, ])
    subject = models.CharField(max_length=200)
    message = models.CharField(max_length=250)
    created_date = models.DateTimeField(auto_now_add=True)


    How can I prevent an empty model being saved? e.g. in the django shell I can do



    contact = Contact()
    contact.save()


    This gives a model with all blank values saved.










    share|improve this question

























      0












      0








      0







      Is there a way to stop a model in django allowing an empty model to be saved?



      e.g. I have a simple contact form



      class Contact(models.Model):

      alphabetical = RegexValidator(r'^[a-zA-Z]*$', 'Only alphabetical characters
      are allowed', 'Invalid input')

      name = models.CharField(max_length=200, validators=[alphabetical])
      email = models.EmailField(validators=[EmailValidator, ])
      subject = models.CharField(max_length=200)
      message = models.CharField(max_length=250)
      created_date = models.DateTimeField(auto_now_add=True)


      How can I prevent an empty model being saved? e.g. in the django shell I can do



      contact = Contact()
      contact.save()


      This gives a model with all blank values saved.










      share|improve this question













      Is there a way to stop a model in django allowing an empty model to be saved?



      e.g. I have a simple contact form



      class Contact(models.Model):

      alphabetical = RegexValidator(r'^[a-zA-Z]*$', 'Only alphabetical characters
      are allowed', 'Invalid input')

      name = models.CharField(max_length=200, validators=[alphabetical])
      email = models.EmailField(validators=[EmailValidator, ])
      subject = models.CharField(max_length=200)
      message = models.CharField(max_length=250)
      created_date = models.DateTimeField(auto_now_add=True)


      How can I prevent an empty model being saved? e.g. in the django shell I can do



      contact = Contact()
      contact.save()


      This gives a model with all blank values saved.







      django-models






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 21 '18 at 14:32









      Nassir

      308




      308
























          1 Answer
          1






          active

          oldest

          votes


















          0














          for validation you have to use django.forms. django forms will manage the validation part:



          for eg: if your model.py is:



          class Contact(models.Model):

          name = models.CharField(max_length=200)
          email = models.EmailField()
          subject = models.CharField(max_length=200)
          message = models.CharField(max_length=250)
          created_date = models.DateTimeField(auto_now_add=True)


          now create a view in views.py :



          from django.forms import modelformset_factory
          from django.shortcuts import render
          from myapp.models import Contact

          def manage_contacts(request):
          ContactFormSet = modelformset_factory(Contact, fields=('name', 'email', 'subject', 'message'))
          if request.method == 'POST':
          formset = ContactFormSet(request.POST)
          if formset.is_valid(): # check the validation for blank fields
          formset.save()
          # do something.
          else:
          formset = ContactFormSet()
          return render(request, 'manage_contacts.html', {'formset': formset})


          create a template in templates/manage_contacts.html:



          <form method="post">
          {{ formset }}
          </form>





          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53414365%2fdjango-prevent-empty-model-being-saved%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            for validation you have to use django.forms. django forms will manage the validation part:



            for eg: if your model.py is:



            class Contact(models.Model):

            name = models.CharField(max_length=200)
            email = models.EmailField()
            subject = models.CharField(max_length=200)
            message = models.CharField(max_length=250)
            created_date = models.DateTimeField(auto_now_add=True)


            now create a view in views.py :



            from django.forms import modelformset_factory
            from django.shortcuts import render
            from myapp.models import Contact

            def manage_contacts(request):
            ContactFormSet = modelformset_factory(Contact, fields=('name', 'email', 'subject', 'message'))
            if request.method == 'POST':
            formset = ContactFormSet(request.POST)
            if formset.is_valid(): # check the validation for blank fields
            formset.save()
            # do something.
            else:
            formset = ContactFormSet()
            return render(request, 'manage_contacts.html', {'formset': formset})


            create a template in templates/manage_contacts.html:



            <form method="post">
            {{ formset }}
            </form>





            share|improve this answer


























              0














              for validation you have to use django.forms. django forms will manage the validation part:



              for eg: if your model.py is:



              class Contact(models.Model):

              name = models.CharField(max_length=200)
              email = models.EmailField()
              subject = models.CharField(max_length=200)
              message = models.CharField(max_length=250)
              created_date = models.DateTimeField(auto_now_add=True)


              now create a view in views.py :



              from django.forms import modelformset_factory
              from django.shortcuts import render
              from myapp.models import Contact

              def manage_contacts(request):
              ContactFormSet = modelformset_factory(Contact, fields=('name', 'email', 'subject', 'message'))
              if request.method == 'POST':
              formset = ContactFormSet(request.POST)
              if formset.is_valid(): # check the validation for blank fields
              formset.save()
              # do something.
              else:
              formset = ContactFormSet()
              return render(request, 'manage_contacts.html', {'formset': formset})


              create a template in templates/manage_contacts.html:



              <form method="post">
              {{ formset }}
              </form>





              share|improve this answer
























                0












                0








                0






                for validation you have to use django.forms. django forms will manage the validation part:



                for eg: if your model.py is:



                class Contact(models.Model):

                name = models.CharField(max_length=200)
                email = models.EmailField()
                subject = models.CharField(max_length=200)
                message = models.CharField(max_length=250)
                created_date = models.DateTimeField(auto_now_add=True)


                now create a view in views.py :



                from django.forms import modelformset_factory
                from django.shortcuts import render
                from myapp.models import Contact

                def manage_contacts(request):
                ContactFormSet = modelformset_factory(Contact, fields=('name', 'email', 'subject', 'message'))
                if request.method == 'POST':
                formset = ContactFormSet(request.POST)
                if formset.is_valid(): # check the validation for blank fields
                formset.save()
                # do something.
                else:
                formset = ContactFormSet()
                return render(request, 'manage_contacts.html', {'formset': formset})


                create a template in templates/manage_contacts.html:



                <form method="post">
                {{ formset }}
                </form>





                share|improve this answer












                for validation you have to use django.forms. django forms will manage the validation part:



                for eg: if your model.py is:



                class Contact(models.Model):

                name = models.CharField(max_length=200)
                email = models.EmailField()
                subject = models.CharField(max_length=200)
                message = models.CharField(max_length=250)
                created_date = models.DateTimeField(auto_now_add=True)


                now create a view in views.py :



                from django.forms import modelformset_factory
                from django.shortcuts import render
                from myapp.models import Contact

                def manage_contacts(request):
                ContactFormSet = modelformset_factory(Contact, fields=('name', 'email', 'subject', 'message'))
                if request.method == 'POST':
                formset = ContactFormSet(request.POST)
                if formset.is_valid(): # check the validation for blank fields
                formset.save()
                # do something.
                else:
                formset = ContactFormSet()
                return render(request, 'manage_contacts.html', {'formset': formset})


                create a template in templates/manage_contacts.html:



                <form method="post">
                {{ formset }}
                </form>






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 21 '18 at 14:52









                V.k. Sulaiman

                112




                112






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53414365%2fdjango-prevent-empty-model-being-saved%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    404 Error Contact Form 7 ajax form submitting

                    How to know if a Active Directory user can login interactively

                    TypeError: fit_transform() missing 1 required positional argument: 'X'