Я создал базу данных производителей музыки c и их образцов.
class Producers(models.Model):
producer_id = models.AutoField(db_column='Producer_ID', primary_key=True, blank=True, null=False) # Field name made lowercase.
slug = models.SlugField()
name = models.TextField(db_column='Name') # Field name made lowercase.
info = models.TextField(db_column='Info', blank=True, null=True) # Field name made lowercase.
image = models.ImageField(null=True, blank=True)
class Meta:
managed = False
db_table = 'producers'
class Samples(models.Model):
song_id = models.AutoField(db_column='Song_ID', primary_key=True, blank=True, null=False) # Field name made lowercase.
producer = models.ForeignKey(Producers, models.DO_NOTHING, db_column='Producer_ID') # Field name made lowercase.
artist = models.TextField(db_column='Artist') # Field name made lowercase.
title = models.TextField(db_column='Title') # Field name made lowercase.
class Meta:
managed = False
db_table = 'samples'
Я установил URL-адреса слагов, указывающие на соответствующего продюсера. ex) "производители / j-dilla /"
Я хочу, чтобы биография каждого производителя перечисляла свои образцы.
Попытка с использованием
def bio(request, slug):
producer_list = Producers.objects.all().filter(slug=slug)
samples_list = Samples.objects.all()
queryset = sorted(
chain(producer_list, samples_list),
key=lambda instance: instance.producer_id)
{% for sample in queryset %}
<li>
<span>Artist: {{ sample.artist }}</span> <br/>
<span>Title: {{ sample.title }}</span> <br/>
<span>Title: {{ sample.producer_id }}</span> <br/>
<hr/>
</li>
{% endfor %}
возвращает всю базу данных образцов.