2013-03-23 5 views
0

У меня есть страница, которые отображают все объекты acorrding к КАТЕГОРИИ студенты забрать. Я реализовал разбиение на страницы страниц на разные страницы.Джанго раздаточного динамическая ошибка

Проблема возникает, когда студенты выбрать КАТЕГОРИЯ из раздаточных и пытается вылить через пагинацию для новых и старых записей.

enter image description here

Причина это происходит потому, что каждый раз, когда пользователь выбирает КАТЕГОРИЮ из раздаточных, раздаточного получить сброс, когда он извлечение объектов. Поэтому, когда пользователи пытаются пролистывать объекты, используя разбивку на страницы. Отображение страницы не знает, какие данные нужно извлечь, потому что кассовый сервер Dropbox сбрасывается и перенаправляет пользователей на пустую страницу.

Решение этой задачи заключается в том, чтобы запрограммировать dropbox, чтобы оставаться статичным для выбора, который пользователи делают, когда пользователи щелкают через данные, разбитые на разбиение на страницы, значки разбиения на страницы могут извлекать объекты в соответствии с Dropbox.

Я не могу понять, как сделать этот Dropbox остается неизменным для выбора пользователи делают.

мой views.py

def BoardFinder(request): 
    form = BoardFinderForm(request.POST) 
    fo = BoardFinderForm() 
    if form.is_valid(): 
     Category = form.cleaned_data['Category'] 
     posts = Board.objects.filter(Category=Category) 
     paginator = Paginator(posts, 1) 

     try: page = int(request.GET.get("page", '1')) 
     except ValueError: page = 1 

     try: 
      posts = paginator.page(page) 
     except (InvalidPage, EmptyPage): 
      posts = paginator.page(paginator.num_pages) 
     return render(request,"boardfinder.html",{"posts":posts,"fo":fo}) 
    return render(request,"boardfinder.html",{"fo":fo}) 

Мой models.py

class Board(models.Model): 
    MATH = 'MATH' 
    ENGLISH = 'ENGLISH' 
    SCIENCE = 'SCIENCE' 
    LANGUAGE = 'LANGUAGE' 
    CATEGORY = (
     (MATH, 'Math'), 
     (ENGLISH, 'English'), 
     (SCIENCE, 'Science'), 
     (LANGUAGE, 'Language'), 
    ) 
    Category =models.CharField(max_length=30,choices=CATEGORY) 
    user = models.ForeignKey(User) 
    name = models.CharField(max_length=100) 
    created = models.DateTimeField(auto_now_add=True) 
    picture = models.OneToOneField('Picture',related_name='picture',blank=True,null=True) 
    def __unicode__(self): 
     return self.name 

class BoardFinderForm(forms.ModelForm): 
    class Meta: 
     model = Board 
     fields = ('Category',) 

Важные части моего boardfinder.html

<form method="POST" enctype="multipart/form-data"> 
    {% csrf_token %} 
    {{ fo.as_p }} 
<input type = "submit" value= "Find WhiteBoard" /> 
</form> 



      {% for post in posts.object_list %} 
       <div class="title">{{ post.name }}</div> 
       {% endfor %} 

ответ

0
<form method="GET"> 
    <p><select name="category"> 
     <option value="" 
      {% if not request.session.category %}selected{% endif %}> 
      (All subjects) 
     </option> 

     <option value="ENGLISH" 
      {% if request.session.category == "ENGLISH" %}selected{% endif %}> 
      English 
     </option> 

     <option value="LANGUAGE" 
      {% if request.session.category == "LANGUAGE" %}selected{% endif %}> 
      Language 
     </option> 

     <option value="MATH" 
      {% if request.session.category == "MATH" %}selected{% endif %}> 
      Math 
     </option> 

     <option value="SCIENCE" 
      {% if request.session.category == "SCIENCE" %}selected{% endif %}> 
      Science 
     </option> 
    </select></p> 

    <input type = "submit" value= "Find WhiteBoard" /> 
</form> 

def BoardFinder(request): 
    category = request.GET.get('category') 
    if category: 
     request.session['category'] = category 
     posts = Board.objects.filter(Category=category) 
     paginator = Paginator(posts, 1) 

     try: page = int(request.GET.get("page", '1')) 
     except ValueError: page = 1 

     try: 
      posts = paginator.page(page) 
     except (InvalidPage, EmptyPage): 
      posts = paginator.page(paginator.num_pages) 
     return render(request,"boardfinder.html",{"posts":posts,"fo":fo}) 
    return render(request,"boardfinder.html",{"fo":fo}) 
+0

Я должен сказать вам что-то, Dropbox по-прежнему сбрасывается. lol – lilbear22

+0

Ошибка сеанса запроса не может быть удалена, если она имеет значение. Попробуйте показать '{{request.session.category}}', если оно имеет значение – catherine

+0

self.fields ['Category']. Widget.attrs ['value'] = '{{request.session.category}}'. Nope все еще не работает – lilbear22

Смежные вопросы