Очень простой пользовательский подход к классу Django. У меня был ListView, который работал хорошо, но отображал все объекты. Я хотел, чтобы фильтровать это, и вот что я сделал, следующие несколько примеров найдено:Django: как вводить данные при переопределении get_queryset()?
models.py:
class FolderElement(TimeStampedModel):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
class FolderMedia(TimeStampedModel):
folder_element = models.ForeignKey(FolderElement)
file = models.FileField(upload_to=generate_filepath_folder)
slug = models.SlugField(max_length=50, blank=True)
views.py:
class FolderMediaListView(ListView):
model = FolderMedia
template_name = "book.html"
def get_queryset(self):
self.folder_element = get_object_or_404(FolderElement,
pk=self.kwargs['pk'])
return FolderMedia.filter(folder_element=self.folder_element)
def render_to_response(self, context, **response_kwargs):
files = [ serialize(p) for p in self.get_queryset() ]
data = {'files': files}
response = JSONResponse(data, mimetype=response_mimetype(self.request))
response['Content-Disposition'] = 'inline; filename=files.json'
return response
Но теперь, Я переопределил метод get_queryset()
, я не понимаю, как я должен ввести параметр pk
в представление, если фильтр работает. В настоящее время, используя pdb, я вижу, что self.kwargs
равен {}
в методе get_queryset().
Спасибо.
Спасибо за это подробное объяснение! –
Добро пожаловать! – Wtower