Сохранение объекта с помощью 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
.