Этот вопрос может быть очень простым, но, хоть убей, я не могу сегодня об этом разобраться ...
На работе меня попросили изучить Django, поэтому я надел Моя шапка и последние пару дней работали над туториалами и тому подобным. однако у меня есть проблема, с которой я могу справиться.
У меня есть эта базовая модель данных:
table1
Datasets - Id, Name
table2
subcatergory - id, dataset_id, name
table3
subcatergory value - id, subcat_id, value
, поэтому 1 набор данных может иметь много подкатегорий, а 1 подкатегория может иметь много значений.
в django у меня есть это:
class Dataset(models.Model):
name = models.CharField(max_length=150)
def __unicode__(self):
return self.name
class SubCat(models.Model):
dataset = models.ForeignKey(Dataset)
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class SubCatVal(models.Model):
subcat = models.ForeignKey(SubCat)
value = models.CharField(max_length=100)
в views.py, когда я его тестирую (я просто атм просто хочу заполнить несколько ящиков), если я делаю d = Dataset.objects.all ()
то объект d
не знает подкатегорий?
Итак, если бы я хотел все это, мне пришлось бы сделать:
d = Dataset.objects.all();
s = SubCat.objects.all();
sv = SubCatVal.objects.all();
тогда в html сделайте что-нибудь вроде
{% for d in dataset %}
{% for s in subcat %}
{% if s.dataset_id == d.id %}
//add {{s.name}} to a select box
{% endif %}
{% endfor %}
{% endfor %}
. Это способ сделать это? или я полностью упустил какой-то трюк?
спасибо