Django, Views und Querysets
Verfasst: Samstag 9. Januar 2010, 05:41
Hallo alle zusammen,
ich bin neu hier im Forum und freue mich euch gefunden zu haben, nicht zuletzt weil ich denke, dass ihr mir bei meinem Problem helfen könnt.
Ich beschäftige mich erst seit relativ kurzer Zeit mit Python bzw. Django und möchte mit diesem Framework ein einfaches Webforum umsetzen. Ich möchte auch Vorneweg um Verzeihung bitte, wenn ich per SuFu mögliche Lösungen für mein Problem nicht gefunden habe. Man poste dann bitte entsprechenden Links.
Ich habe ein Verständnisproblem bezüglich des Views "index", der alle Foren nach Kategorien sortiert anzeigt. Ich verstehe zwar die Datenbankabfrage per Queryset und unter Berücksichtigung der Fremdschlüsselbeziehung zwischen den Models "Category" und "Board", allerdings bin ich bisher nicht in der Lage gewesen das zu implementieren; beziehungsweise funktionierten einige "Proben" durchaus fehlerfrei, es wurde mir im Browser aber auch nix angezeigt.
Wie muss der View und / oder das Tempalte ausehen um folgende Ausgabe zu erhalten?
Ich habe jetzt schon viele Snippets, gefunden und geslesen, trotzalledem komm ich dem aber nicht auf die Spur. Auch habe versucht mich an den Sourcen von Snapboard, PythonBB, PyBB, u.a. zu orientieren. Da ich total auf dem Schlauch stehe wäre ich über eine Step-by-Step-Hilfe bzgl. dem View und auch kritischen Blicken auf das Template sehr dankbar.
Mit Dank für eure Bemühungen und hilfreichen Tipps verbleibe ich mit freundlichen Grüßen
Nothyman
ich bin neu hier im Forum und freue mich euch gefunden zu haben, nicht zuletzt weil ich denke, dass ihr mir bei meinem Problem helfen könnt.
Ich beschäftige mich erst seit relativ kurzer Zeit mit Python bzw. Django und möchte mit diesem Framework ein einfaches Webforum umsetzen. Ich möchte auch Vorneweg um Verzeihung bitte, wenn ich per SuFu mögliche Lösungen für mein Problem nicht gefunden habe. Man poste dann bitte entsprechenden Links.
Ich habe ein Verständnisproblem bezüglich des Views "index", der alle Foren nach Kategorien sortiert anzeigt. Ich verstehe zwar die Datenbankabfrage per Queryset und unter Berücksichtigung der Fremdschlüsselbeziehung zwischen den Models "Category" und "Board", allerdings bin ich bisher nicht in der Lage gewesen das zu implementieren; beziehungsweise funktionierten einige "Proben" durchaus fehlerfrei, es wurde mir im Browser aber auch nix angezeigt.
Wie muss der View und / oder das Tempalte ausehen um folgende Ausgabe zu erhalten?
Code: Alles auswählen
--Kategorie1
----Forum1
----Forum2
----Forum3
--Kategorie2
----Forum4
----Forum5
----Forum6
Code: Alles auswählen
class Category (models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField("title", max_length=255)
rank = models.IntegerField("rank");
class Meta:
ordering = ['rank']
verbose_name = "Category"
verbose_name_plural = "Categories"
def __unicode__(self):
return u'%s' % (self.title)
Code: Alles auswählen
class Board (models.Model):
id = models.AutoField(primary_key=True)
category = models.ForeignKey(Category)
title = models.CharField("title", max_length=255, unique=True)
description = models.CharField("description", max_length=255)
rank = models.IntegerField("rank");
class Meta:
ordering = ['rank']
verbose_name = "Board"
verbose_name_plural = "Boards"
def __unicode__(self):
return u'%s' % (self.title)
Code: Alles auswählen
{% extends "forum_base.html" %}
{% block content %}
{% for elem in queryset %}
<h3>{{ elem.cat }} - </h3>
{% for forum in elem.forums %}
{{forum}}<br />
{% endfor %}
{% endfor %}
Code: Alles auswählen
def index(request):
_boards = Board.objects.select_related().all()
ToReturn = {}
forums = {}
for board in _boards:
result = ToReturn.setdefault(board.category.id, {'cat' : board.category, 'forums' : []})
result['forums'].append(board)
forums[board.id] = board
return render_to_response('forum/forum_list.html', {'queryset':ToReturn})
Mit Dank für eure Bemühungen und hilfreichen Tipps verbleibe ich mit freundlichen Grüßen
Nothyman