Не удается получить выбранный вариант в выпадающем списке на странице обновления CRUD
Я делаю CRUD и пытаюсь выполнить операцию обновления, используя внешние ключи и сериализаторы.
Проблема в том, что я не могу сохранить сохраненный вариант выпадающего списка.
Я использую Django dropdown.
например
У меня есть категории как "fusion wear", но когда я перехожу на страницу редактирования, чтобы попытаться отредактировать ее, категории не показывают "fusion wear", они показывают "9-6wear".
ниже представлены сериализаторы
class CategoriesSerializer(serializers.ModelSerializer):
class Meta:
model = Categories
fields = "__all__"
extra_kwargs = {'category_name': {'required': False}}
class ColorsSerializer(serializers.ModelSerializer):
class Meta:
model = Colors
fields = "__all__"
class POLLSerializer(serializers.ModelSerializer):
# categories = serializers.StringRelatedField(many=False)
# sub_categories = serializers.StringRelatedField(many=False)
# color = serializers.StringRelatedField(many=False)
# size = serializers.StringRelatedField(many=False)
class Meta:
model = Products
fields = "__all__"
class SizeSerializer(serializers.ModelSerializer):
class Meta:
model = Size
fields = "__all__"
class SUBCategoriesSerializer(serializers.ModelSerializer):
class Meta:
model = SUBCategories
fields = "__all__"
модели
class Products(models.Model):
categories = models.ForeignKey(Categories,on_delete=models.CASCADE)
sub_categories = models.ForeignKey(SUBCategories,on_delete=models.CASCADE)
color = 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)
product_details = models.CharField(max_length=300)
quantity = models.IntegerField(default=0)
isactive = models.BooleanField(default=True)
class Categories(models.Model):
#made changes to category_name for null and blank
category_name = models.CharField(max_length=20)
category_description = models.CharField(max_length=20)
isactive = models.BooleanField(default=True)
def __str__(self):
return self.category_name
class Colors(models.Model):
color_name = models.CharField(max_length=10)
color_description = models.CharField(max_length=10)
isactive = models.BooleanField(default=True)
def __str__(self):
return self.color_name
class Size(models.Model):
size_name = models.CharField(max_length=10)
size_description = models.CharField(max_length=20)
isactive = models.BooleanField(default=True)
def __str__(self):
return self.size_name
class SUBCategories(models.Model):
category_name = models.ForeignKey(Categories, on_delete=models.CASCADE)
sub_categories_name = models.CharField(max_length=20)
sub_categories_description = models.CharField(max_length=20)
isactive = models.BooleanField(default=True)
def __str__(self):
return self.sub_categories_name
html код в product_edit
<td>Categories</td>
<td>
<input name="categories" id="CATEGORIES" placeholder="enter categories" list="Categories" value="{{Categories.category_name}}">
<datalist id="Categories">
{% for c in context %}
<option value="{{c.id}}">{{c.category_name}}</option>
{% endfor %}
</datalist>
</td>
<td>Sub-Categories</td>
<td>
<input name="sub_categories" id="SUBCATEGORIES" placeholder="enter subcategories" list="SUBCategories" value="{{SUBCategories.sub_categories_name}}">
<datalist id="SUBCategories">
{% for c in sub_context %}
<option value="{{c.id}}">{{c.sub_categories_name}}</option>
{% endfor %}
</datalist>
</td>
<tr>
<td>Colors</td>
<td><input type="text" name="color" value="{{Colors.color_name}}"></td>
</tr>
<tr>
<td>Size</td>
<td><input type="text" name="size" value="{{Size.size_name}}"></td>
</tr>
где я ошибаюсь в коде?