簡體   English   中英

如何將 URL 中的變量傳遞給 Django 列表視圖?

[英]How do I pass a variable in the URL to a Django list view?

首先,我想 state 我已經看到這里創建的帖子了。 問題是我對 Django 框架還是很陌生,我在代碼中實現這個策略的每一次嘗試都失敗了。 無論如何,我很好奇如何將字符串值從 URL 傳遞到我的列表視圖中。 在我的例子中,變量名為 item 以便我可以進行過濾查詢。 這在基於函數的視圖上非常容易做到,但我很難在這些基於類的視圖上做同樣的事情。 謝謝!

Class 基於視圖:

class PostListView(ListView):
    
    model = Post.objects.get(subject_name=item)
    template_name = 'blog/home.html'
    context_object_name = 'posts'
    ordering = ['-date_posted']
    paginate_by = 5
    

路由:

path('<str:item>/', PostListView.as_view(), name='post-view')

您可以將 get 方法添加到您的 PostListView:


def get(self, request, *args, **kwargs):
    item = kwargs[“item”]
    // use the item variable here
    return super().get(request, *args, **kwargs)

如果您需要更正您的上下文,同樣的事情:


def get_context_data(self, **kwargs):
    data = super().get_context_data(**kwargs)
    data['item'] = kwargs['item']
    return data

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM