django श्रेणियां: django-श्रेणियों का उपयोग कर एक श्रेणी के बच्चों को कैसे प्राप्त करें?

मैं संगीत संबंधित ऐप को लागू करने के लिए django-श्रेणियां का उपयोग कर रहा हूं। मैं कलाकार को अपनी श्रेणी और उसके गीतों के रूप में बच्चों के रूप में चाहता हूं

models.py

from django.db import models
from django_extensions.db.fields import AutoSlugField
from categories.models import CategoryBase

class Artist(CategoryBase):
    cat = models.CharField(max_length=255, blank=True)

    def __unicode__(self):
        return self.name

class Song(models.Model):
    title = models.CharField(max_length=255,)
    slug = AutoSlugField(populate_from='title', unique=True)
    description = models.TextField()
    cat = models.ForeignKey(Artist, blank=True)

    def __unicode__(self):
        return self.title

टेम्पलेट्स में, artist_details.html

{% extends 'base_post.html' %}
{% load category_tags %}
{% block page_content %}

{{ artist.name }}

{% if artist.children.count %}
    

Subcategories

    
    {% for child in artist.children.all %}
  • {{ child }}
  • {% endfor %}
{% endif %}

टेम्पलेट को प्रस्तुत किया जा रहा है मैं कलाकार का नाम देख सकता हूं। लेकिन मैं बच्चों को लाने में असमर्थ हूं। मैंने दस्तावेज़ों की जांच की लेकिन मुझे बच्चों को लाने से संबंधित ज्यादा सामान नहीं मिल सका।

मेरे डीबी में दोनों मॉडलों के लिए डेटा है, मैंने व्यवस्थापक इंटरफेस के माध्यम से प्रासंगिक जानकारी जोड़ा। क्या कोई मुझे बता सकता है कि मुझे क्या याद आ रही है?

इसके अलावा मैं बेहतर पैकेज का उपयोग करने के लिए खोलता हूं। आप श्रेणियों को लागू करने वाले कोई भी सुझाव दे सकते हैं।

SOLUTION: From django docs https://docs.djangoproject.com/en/1.6/topics/templates/#accessing-method-calls

धन्यवाद mariodev

0
जोड़ा संपादित
विचारों: 1
गीत_सेट द्वारा आप क्वेरीसेट का जिक्र कर रहे हैं? यदि आप आगे कुछ नहीं बता सकते हैं कि आप क्या उपयोगी हैं या कुछ उपयोगी वेब पेज लिंक प्रदान करते हैं जहां मैं आगे खोद सकता हूं?
जोड़ा लेखक Mayur Rokade, स्रोत
मुझे लगता है कि जब आप श्रेणी मॉडल subclass, आप अब बच्चों का उपयोग नहीं कर सकते हैं। इसके बजाय song_set का उपयोग करने का प्रयास करें।
जोड़ा लेखक mariodev, स्रोत

1 उत्तर

from django.db import models
from django_extensions.db.fields import AutoSlugField
from categories.models import CategoryBase

class MusicCategory(CategoryBase):
    # add extra fields, like images, "featured" and such here
    pass

class Artist(CategoryBase):
    name       = CharField(max_length=255,)
    categories = models.ManyToManyField(MusicCategory, related_name="artists")

    def __unicode__(self):
        return self.name

class Song(models.Model):
    slug        = AutoSlugField(populate_from='title', unique=True)
    title       = models.CharField(max_length=255,)
    artist      = models.ForeignKey(Artist, related_name="songs", on_delete=models.PROTECT)
    categories  = models.ManyToManyField(MusicCategory, related_name="songs")
    description = models.TextField()

    def __unicode__(self):
        return self.title

और कुछ टेम्पलेट्स के साथ

{% extends 'base_post.html' %}
{% load category_tags %}
{% block page_content %}

{{ artist.name }}

{% if artist.songs.all.exists %}
    

Songs

    
    {% for song in artist.songs.all %}
  • {{ song }}
  • {% endfor %}
{% endif %}

REF: https://django-categories.readthedocs.org/en/latest/custom_categories.html#creating-custom-categories

0
जोड़ा