Есть ли способ передать модель в шаблон без представления на основе класса?

Мой вопрос заключается в том, могу ли я использовать функцию 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 и файла шаблона).

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