Есть ли способ передать модель в шаблон без представления на основе класса?
Мой вопрос заключается в том, могу ли я использовать функцию view для передачи модели внутри моего шаблона для итерации. Вот как выглядит моя модель
class Listing(models.Model):
user = models.ForeignKey( User, on_delete=models.CASCADE)
itempicture = models.ImageField(upload_to="images",blank=False)
title = models.CharField(max_length=50)
about = models.CharField(max_length=500)
published_date = models.DateTimeField(blank=True, null=True)
Как я могу написать представление на основе функций для передачи в мою базу данных так же, как представление на основе классов (представление списка)
Вы можете просто использовать all()
, но если вам нужен пользовательский фильтрованный набор запросов, который мы обычно делаем путем переопределения метода get_queryset()
в ListView
, вы можете использовать метод filter()
следующим образом:
views.py
def home(request):
listings=Listing.objects.all() #Give the default queryset as ListView
filtered_listings=Listing.objects.filter(user=request.user) #Give the queryset for current logged in user which can be achieved by overriding "get_queryset()" method in "ListView".
return render(request,"some_folder_name/some_filename.html",{'listings': listings})
Тогда вы можете просто итерировать любой из наборов запросов в шаблоне (предполагается, что вы знаете логику urls.py и файла шаблона).