Сохранение объекта с помощью django createview из формы и дополнительных полей

Я запутался в том, как добавить дополнительные поля в my_model, которые исключены из моей HTML формы, определенной в forms.py при сохранении с помощью createview!

models.py:

class My_model(models.Model):
    # attrs in the form that are saved already with now problem
    ...
    #attrs excluded in forms.py but I want to save them along with the form
    attr_1=models.CharField(max_length=30)
    attr_2_type=[('a','A'),('b','B')]
    attr_2=models.Charfield(max_length=8,choices=attr_2_type)
    ...
    def get_absolute_url(self):
        return reverse("application:redirectin_pattern_name", kwargs={"pk":self.pk})

views.py:

class MyModelCreateView(CreateView):
    model= My_model
    form_class = MyModelForm
    template_name = "application/mymodel.html"

mymodel.html

<div class="row ">   
    <div class="col-md-3"></div>
            <div class="col-md-6">
                {% block form %}
                     <form method="post" action="{% url 'application:pattern_name' %}">
                {% endblock form %}
                    {% csrf_token %}
                    {{ form.as_p }}
                    <input class="form-control btn-primary" type="submit" name="save" 
                       value="send your demand" />
                </form>
            </div>
        </div>

здесь все работает нормально форма отображается и я могу отправить данные и сохранить их в базе данных затем я автоматически перенаправляюсь на страницу деталей объекта, который я сохранил и все детали правильные я даже проверил передачу id другого объекта, чтобы увидеть, если он изменится и показать детали каждого вызванного объекта и это тоже работает.

Теперь я просто хочу сохранить остальные атрибуты модели одновременно с сохранением формы в базу данных.

Я не включил сюда файл forms.py, потому что не думаю, что он связан с моей проблемой.

Спасибо за ваш вопрос. Я полагаю, вам нужно обновить ваш html, например так:

<div class="col-md-6">
    <form method="post" action="{% url 'application:mymodel' method='POST' %}">
        {% csrf_token %}
        {{ form.as_p }}
        <input class="form-control btn-primary" type="submit" name="save" value="send your demand" />
    </form>
</div>

application:mymodel в теге <form> - это для примера, это должно быть имя вашего шаблона. Я удалил {% block form %}, потому что не понимаю, зачем он нужен в этом html.

Вернуться на верх