Как я могу отобразить динамический список сохраненных элементов в моем приложении
Я пытаюсь заставить Django показывать список сохраненных вводов от пользователя на индексной странице. ( Я знаю, что мой код ужасен, в нем много крошечных кусочков того, что я пробовал и не смог заставить работать. У меня нет большого опыта в программировании, я просто пытаюсь сделать это для проекта в университете. )
Весь проект должен быть прототипом приложения для хранения продуктов, пользователь помещает продукты в выпадающее меню (я буду расширять его подкатегориями, например, продукты на основе молока => сыр) и должен иметь возможность просматривать то, что находится на хранении, и иметь возможность удалять элементы. Сейчас я застрял на том, как сделать список доступным для просмотра пользователем. Любая помощь будет очень признательна!
Models.py
from django.db import models
# Create your models here.
class FoodCategory(models.Model):
MILK = 'MLK'
VEGETABLE = 'VG'
MEAT = 'MT'
PASTA = 'PST'
FRUIT = 'GR'
FOOD_CATEGORY_CHOICES = [
(MILK, 'Milk based foods'),
(VEGETABLE, 'Vegetables'),
(MEAT, 'Meats'),
(PASTA, 'Pasta'),
(FRUIT, 'Fruits'),
]
foodcategory = models.TextField(
choices= FOOD_CATEGORY_CHOICES,
default= MILK,
)
class Meta:
verbose_name = 'foodcategory'
verbose_name_plural = 'food_list'
def __str__(self):
return self.foodcategory
View.py
class IndexView(generic.ListView):
model = FoodCategory
template_name = 'foodstorage/index.html'
def get_queryset(self):
return FoodCategory.objects.all()
def WorkView(request):
form = SelectionForm()
if request.method == "POST":
form = SelectionForm(request.POST)
if form.is_valid():
foodlist = form.save(commit = False)
foodlist.save()
#cd = form.cleaned_data
return HttpResponseRedirect(reverse('foodstorage:index'))
else:
form = SelectionForm()
return render(request,
'foodstorage/work.html',
{'form': form})
def overview(request):
all_food = FoodCategory.objects.all()
context = {
"all_food" : all_food
}
return render(request, 'foodstorage/index.html', context)
urls.py
from django.urls import path
from . import views
app_name = 'foodstorage'
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('work/', views.WorkView, name='work'),
]
index.html
{% load static %}
<link rel="stylesheet" type="text/css">
{% block content %}
<h1>food storage home</h1>
<ul>
<h1>List of food:</h1>
{% for foodcategory in all_food %}
<h1>{{all_food}}</h1>
{% endfor %}
<a href="{% url 'foodstorage:work' %}">Enter new food</a>
</ul>
{% endblock %}
Пожалуйста, сообщите мне, если потребуется больше кода для решения этой проблемы.
добавьте это:
<h1>List of food:</h1>
{% for foodcategory in all_food %}
<h1>{{ foodcategory }}</h1>
{% endfor %}