Я создал таблицу с бэкэндом MySQL в Django, которая позволяет мне хранить генераторные диаграммы, которые были бы полезны в построении мира и построении персонажей, как вы можете найти на reddit.com/r/d100. Моя таблица может содержать 110 потенциальных записей роллов, но я ожидаю, что для некоторых таблиц (таких как таблицы d20) большое количество записей не будет использовано. Есть ли способ отобразить все используемые записи, но пропустить пустые записи? Если нет, я готов жестко зачеркнуть каждый из рулонов для отображения на веб-странице.
Я ожидал подключить что-то вроде
<tr>
<th>Roll</th>
<th>Result</th>
</tr>
{% if table.roll_1 is not None %}
<tr>
<td>1</td>
<td>{{ table.roll_1 }}
</tr>
{% endif %}
</table>
Это моя модель таблицы генератора:
class D100Generator(models.Model):
d_100_id = models.AutoField(primary_key=True)
field_of_interest = models.ForeignKey(FieldOfInterest, on_delete=models.CASCADE)
subreddit_post_id = models.ForeignKey(Subreddit, on_delete=models.CASCADE, blank=True, null=True)
module_id = models.ForeignKey(Module, on_delete=models.CASCADE, blank=True, null=True)
generic_website_id = models.ForeignKey(GenericWebsite, on_delete=models.CASCADE, blank=True, null=True)
table_name = models.CharField('table name', max_length=100)
system = models.CharField(max_length=150)
genre = models.CharField(max_length=250)
chart_type = models.CharField('Die used', max_length=15)
chart_instructions = models.TextField('Chart instructions & explanation')
roll_1 = models.TextField('1', blank=True, null=True)
roll_2 = models.TextField('2', blank=True, null=True)
...
roll_109 = models.TextField('109', blank=True, null=True)
roll_110 = models.TextField('110', blank=True, null=True)
table_slug = models.SlugField(unique=True)
def save(self, *args, **kwargs):
if not self.id:
#Newly created object, so set slug
self.table_slug = slugify(self.table_name)
super(D100Generator, self).save(*args, **kwargs)
def __str__(self):
return self.table_name
Это представление, которое вызывает страницу:
from django.shortcuts import get_object_or_404, render
from .models import D100Generator
def index(request):
latest_table_list = D100Generator.objects.order_by('-d_100_id')[:5]
context = {
'latest_table_list': latest_table_list
}
return render(request, 'generators/index.html', context)
def table(request, table_slug):
table = get_object_or_404(D100Generator, pk=table_slug)
return render(request, 'generators/table.html', {'table': table})