Generic createview и django form только рендеринг кнопки в шаблоне
Я столкнулся с забавной проблемой, поскольку я создаю некоторые приложения, где они хотят отслеживать некоторые расходы и доходы прибыли ... Я использовал общие представления для создания и получения деталей и удаления, все работает нормально с расходами, но я скопировал тот же код и я использовал его для доходов от расходов вы не можете себе представить, что это представление отображает только кнопку, но у него есть форма, ЗАМЕТЬТЕ ТАКОЙ ЖЕ КОД РАБОТАЕТ НА РАСХОДАХ. Я даже поменял шаблоны, но он продолжал отображать прежнее содержимое даже после изменения шаблона. Не имеет значения, что в шаблоне, вид просто отображает то же самое, даже когда я удаляю форму, даже когда я ставлю pass.
class AccountsRevenueCreate(CreateView):
template_name='dashboard/expense_create.html'
model= AccountsExpense
success_url = reverse_lazy('dashboard:expenses')
form_class=AccountsExpenseForm
и форма
class AccountsRevenueForm(forms.ModelForm):
class Meta:
model = AccountsRevenue
fields = '__all__'
и в шаблоне
<div class="row">
<div class="col-12">
<h5 class="form-title"><span>revenue Update </span></h5>
</div>
<form method="post", action="{% url 'dashboard:revenue_add' %}">
{% csrf_token %}
{% comment %} {{ form|crispy }} {% endcomment %}
{{ form.as_p }}
<button type="submit" class="btn btn-primary col-12 col-sm-12">Save
</button>
</form>
</div>
и URL
path ('accounts/revenues/create/', AccountsRevenueCreate.as_view(), name='revenue_create'),
Я решил показать вам только то, где проблема не вставить ненужный код
Я добавил скриншот того, что получается введите описание изображения здесь
оставить model.py, forms.py, urls.py как было.
views.py в строке: template_name = 'bboard/expense_create.html' замените bboard на название папки, в которой находятся шаблоны. У меня это templates/bboard. Также в вашем поле: form_class=AccountsExpenseForm изменилось на form_class = AccountsRevenueForm.. И возврат идет на ту же страницу с формой: success_url = reverse_lazy('revenue_create').
success_url можно вернуть на прежнее место, теперь нужно убедиться, что все работает.
views.py
class AccountsRevenueCreate(CreateView):
template_name = 'bboard/expense_create.html'
model = AccountsExpense
success_url = reverse_lazy('revenue_create')
form_class = AccountsRevenueForm
expense_create.html в шаблоне у вас ошибка формы method="post", там не должно быть запятой.
<div class="row">
<div class="col-12">
<h5 class="form-title"><span>revenue Update
</span></h5>
</div>
<form method="post" action="{% url 'revenue_create' %}">
{% csrf_token %}
{% comment %} {{ form|crispy }} {% endcomment %}
{{ form.as_p }}
<button type="submit" class="btn btn-primary col-12 col-sm-12">Save
</button>
</form>
</div>
Перешел по ссылке: http://localhost:8000/accounts/revenues/create/