Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Django form is not displaying all fields

I have a problem, i need to create form like scheme, i have my models and created forms.py.When i add my forms into the HTML, i have only 2 of all fields in my forms.What it can be?
This is my models.py

class Post(models.Model):
    full_name = models.CharField(max_length=60, verbose_name='Full name'),
    name_scheme = models.CharField(max_length=40, verbose_name='Name of scheme')
    job = models.CharField(max_length=100, verbose_name='Job'),
    email = models.EmailField(verbose_name='Email'),
    domain_name = models.CharField(max_length=100, verbose_name='Domain'),
    phone_number = PhoneNumberField,
    company_name = models.CharField(max_length=30, verbose_name='Company name'),
    text = models.TextField(max_length=255, verbose_name='Text'),
    age = models.IntegerField(validators=[MinValueValidator(18), MaxValueValidator(65)])
    address = models.CharField(max_length=255, verbose_name='Address'),
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.full_name

forms.py

class AddSchemeForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = '__all__'

views.py

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

def add_scheme(request):
    if request.method == 'POST':
        form = AddSchemeForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('home')
    else:
        form = AddSchemeForm()
        return render(request, 'add_scheme.html', {'form': form})

template:

<form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <div>
      {{ form.full_name.label_tag }}
      {{ form.full_name }}
    </div>
    <div>
      {{ form.name_scheme.label_tag }}
      {{ form.name_scheme }}
    </div>
    <div>
      {{ form.job.label_tag }}
      {{ form.job }}
    </div>

>Solution :

The problem is with syntax. The issue is with the comma (,) after each field definition that you used. Commas are used to separate items in a list, so in this case, they are causing each field to be treated as a single-item tuple, which is not what you want.

Here is the model class code you can use:

class Post(models.Model):
    full_name = models.CharField(max_length=60, verbose_name='Full name')
    name_scheme = models.CharField(max_length=40, verbose_name='Name of scheme')
    job = models.CharField(max_length=100, verbose_name='Job')
    email = models.EmailField(verbose_name='Email')
    domain_name = models.CharField(max_length=100, verbose_name='Domain')
    phone_number = PhoneNumberField
    company_name = models.CharField(max_length=30, verbose_name='Company name')
    text = models.TextField(max_length=255, verbose_name='Text')
    age = models.IntegerField(validators=[MinValueValidator(18), MaxValueValidator(65)])
    address = models.CharField(max_length=255, verbose_name='Address')
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.full_name
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading