ich arbeite noch nicht so lange mit Python und habe gerade frisch mit Django angefangen. Ich denke für mein Problem gibt es sicher schon zig Beispiele im Internet, aber irgendwie suche ich wohl mit den falschen Schlüsselworten.
Sagen wir ich habe eine Datenbank-Tabelle mit 100 Spalten und ich möchte mir nur 20 auf einmal anzeigen lassen. Nun würde ich gerne mit zwei Buttons bewerkstelligen, dass ich in der Tabelle vor und zurück navigieren kann. Also wenn ich auf next klicke sollen die nächsten 20 Spalten angezeigt werden, und wenn ich last klicke eben die letzten 20.
Hier ist mein jetziger Code, noch komplett ohne Logik:
urls.py von app:
Code: Alles auswählen
from django.urls import re_path
from . import views
urlpatterns = [
re_path(r'^$', views.index, name='index'),
re_path(r'^history/$', views.history, name='history'),
]
Code: Alles auswählen
from django.db import models
class Tapes(models.Model):
label = models.CharField(max_length=10)
tape_fs = models.CharField(max_length=8)
inuse = models.DecimalField(max_digits=10, decimal_places=0, default=0)
free = models.DecimalField(max_digits=10, decimal_places=0, default=1345)
folders = models.TextField()
created_at = models.DateField(("Date"), auto_now_add=True)
def __str__(self):
return self.label
class Meta:
verbose_name_plural = "Tapes"
Code: Alles auswählen
from django.shortcuts import render
from .models import Tapes
# Create your views here.
def index(request):
context = {
'title': 'Tape Backup',
}
return render(request, 'frontend/index.html', context)
def history(request):
tapes = Tapes.objects.all()[:20]
context = {
'title': 'Tapes in Database',
'tapes': tapes
}
return render(request, 'frontend/history.html', context)
Code: Alles auswählen
{% extends 'frontend/layout.html' %}
{% block content %}
<div id="page-content" class="container">
<div class="space">
<h4>{{tapes.title}}</h4>
</div>
<div class="row">
<div class="col-lg-12" style="padding: 10px;">
<table id="historyTable" class="table table-striped">
<thead>
<tr>
<th>Backup ID</th>
<th>Label</th>
<th>Tape FS</th>
<th>In Use</th>
<th>Free</th>
<th>Folders</th>
<th>Date</th>
<th>Print Label</th>
</tr>
</thead>
<tbody>
{% for tape in tapes %}
<tr>
<td>{{tape.id}}</td>
<td>{{tape.label}}</td>
<td>{{tape.tape_fs}}</td>
<td>{{tape.inuse}}GB</td>
<td>{{tape.free}}GB</td>
<td>{{tape.folders}}</td>
<td>{{tape.created_at}}</td>
<td><input type="checkbox" class="print" name="print" /></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class='col-xs-12 button-wrapper'>
<a href="/" id="history" class="btn">Home</a>
<a href="/" id="last" class="btn">Last</a>
<a href="/" id="next" class="btn">Next</a>
<a href="#" id="print_label" class="btn">Print</a>
</div>
</div>
</div>
{% endblock %}