'My form is not saving for some reason... did I made a mistake on my HTML?

I wanted to modify the way my forms is displayed using html and css.

Here is the <form> part of my HTML:

<form action="" method="post" enctype='multipart/form-data'>
    {% csrf_token %}
    <div>     
        <input type="text" name="post_title" placeholder="Forum title" id="id_post_title">
        <textarea name="post_body" placeholder="Forum content" id="id_post_body"></textarea>
        
        <div class="authors"> <!-- This class is to call my Users model -->
            <select name="author" id="id_author">
                <option value="">----Select Author----</option>
                
                {% for author in authors %}
                    <option value="{{ author.first_name }} {{ author.last_name }}">{{ author.first_name }} {{ author.last_name }}</option>
                {% endfor %}

            </select>
        </div>

        <div>
            <label>
                <input type="file" accept="image/" name="forum_image" required id="id_forum_image" >Upload Image
            </label>
                            
        </div>
            
            <input type="submit" value="Save Post" class="save_post"> 
            
        </div>   
</form>

I tried form.as_p and it all worked just fine. Did I made a mistake in my HTML? Here is my forms.py:

class AddForum(forms.ModelForm): class Meta: model = Forum fields = 'all'

    labels = {
        'post_title': 'Title of your post:',
        'post_body': 'Content of your post:',
        'author': 'Author:',
        'forum_image': 'Attach image:',
    }

def __init__(self, *args, **kwargs):
    super(AddForum, self).__init__(*args, **kwargs)
    self.fields['forum_image'].required = False


Solution 1:[1]

The problem lies with my <option value="{{ something }}". What value needs is {{ something }}'s id and not the name itself.

The code should be:

<option value="{{ author.id }}">{{author.first_name }} {{ author.last_name }}</option>

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 noobcloud