Попытка реализовать выпадающий список в django с использованием циклов for и внешних ключей
Здравствуйте, я новичок в django html, я делаю CRUD с моделями Products, Categories, SUBCategories, Size, Colors. Я пытаюсь сделать зависимый от django выпадающий список для свойства 'Category'. ниже приведена модель polls.models
class Products(models.Model):
Categories = models.ForeignKey(Categories,on_delete=models.CASCADE,default=None)
sub_categories = models.ForeignKey(SUBCategories,on_delete=models.CASCADE, default=None)
Colors = models.ForeignKey(Colors,on_delete=models.CASCADE)
Size = models.ForeignKey(Size,on_delete=models.CASCADE)
image = models.ImageField(upload_to = 'media/',width_field=None,height_field=None,null=True)
title = models.CharField(max_length=50)
price = models.CharField(max_length=10)
sku_number = models.CharField(max_length=10)
prod_details = models.CharField(max_length=300)
quantity = models.IntegerField(default=0)
isactive = models.BooleanField(default=True)
sub_categories.models
class SUBCategories(models.Model):
category_name = models.ForeignKey(Categories,on_delete=models.CASCADE,default=None)
sub_categories_name = models.CharField(max_length=20)
sub_categories_description = models.CharField(max_length=20)
isactive = models.BooleanField(default=True)
ниже приведена функция вставки insert_sub_categories
def insert_sub_categories(request):
context = {'9-6 wear':'9-6wear','bridalwear':'Bridal-Wear','desi_swag':'DesiSwag','fusion_wear':'FusionWear'}
if request.method == "POST":
insertsubcategories = {}
insertsubcategories['sub_categories_name']=request.POST.get('sub_categories_name')
insertsubcategories['sub_categories_description']=request.POST.get('sub_categories_description')
form = SUBCategoriesSerializer(data=insertsubcategories)
if form.is_valid():
form.save()
print("hkjk",form.data)
messages.success(request,'Record Updated Successfully...!:)')
return redirect('sub_categories:show_sub_categories',kwargs=context)
else:
print(form.errors)
else:
return render(request,'polls/insert_sub_categories.html',context)
ниже представлен insert_sub_categories.html
<td>category name</td>
<td>
<select name="category_name" id="">
{% for c in context %}
<option value="{{c.category_name}}"></option>
{% endfor %}
</select>
</td>
несмотря на все это, выпадающий список не показывает содержимое 'контекстного' словаря
что происходит не так?
Изменить их в представлениях
def insert_sub_categories(request):
category = ['9-6wear', 'Bridal-Wear', 'desi_swag', 'fusion_wear']
context = {'context': category}
return render(request,'polls/insert_sub_categories.html',context)
В HTML
<select name="category_name" id="">
{% for c in context %}
<option value="{{c}}">{{c}}</option>
{% endfor %}
</select>