ジャンゴ1.11.4反復、項目の下
のPostgreSQL 9.6.3
によって、ループ項目がブックマークモデルです。
class Bookmark(CommonUrlMethodsMixin,
models.Model):
memo = models.CharField(max_length=200,
null=False,
blank=True,
default="") # Intentionally blank.
# For displaying in ModelForm.
content_type = models.ForeignKey(ContentType)
content_type_for_filter = models.CharField(max_length=6,
null=False,
blank=True,
default="")
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
user = models.ForeignKey(User,
on_delete=models.CASCADE)
def __str__(self):
return "{}: {} {}".format(self.content_object._meta.verbose_name.title(), self.content_object, self.memo)
class Meta:
verbose_name = _("bookmark")
私のプロジェクトでは、ブックマークはフレーム、アイテム、シートにすることができます。 ブックマークモデルcontent_type_for_filterに特別なフィールドを編成しました。 「フレーム」または「項目」または「シート」のいずれかを含むことがあります。
ブックマークはグループに示されなければならない:フレームのために、その後、項目の最後にシートのための最初のブックマーク:
Frames
bookmark 1
bookmark 2
bookmark 3
Sheets
bookmark 4
bookmark 5
Items
bookmark 6
bookmark 7
bookmark 8
をそれから私は、ブックマークを表示したい個人の領域に。ビューでは、今私が持っている:私のコードは受け入れられないと思われ
def get_context_data(self, **kwargs):
bookmarks = user.bookmark_set.all()
# context['bookmarks'] = bookmarks
。見てください:どうやらPythonでブックマークを処理する必要があります。名前付きタプルなどを使用します。リストの少なくとも3つのリスト。
私は、データベースからの私の選択は最適ではないと考えています。おそらく、 "content_type_for_filter"でグループ化することができます。 その後、グループをループします。グループの内容をループします。しかし、私はどのように知りません。
どうすればいいですか? ORMで可能ですか?そうでない場合、ORMなしでそれを行う方法は?
を次のようにあなたはそれを定義することが私のコードは受け入れられないようです。 < - まあ、それじゃないの? (何が効いていないのですか?) – timgeb