когда я собираюсь реализовать поле тега, я получаю следующую ошибку
AttributeError: Получил AttributeError при попытке получить значение для поля tags
на сериализаторе CategorySerializers
.Поле сериализатора может иметь неправильное имя и не соответствовать ни одному атрибуту или ключу в экземпляре Category
.Исходный текст исключения был: объект «Категория» не имеет атрибута «теги».
models.py
class Category(models.Model):
name = models.CharField(max_length=100)
class Tag(models.Model):
tag_name = models.CharField(max_length=30)
class FileUp(models.Model):
name = models.ForeignKey(Category, on_delete=models.CASCADE)
file = models.FileField(upload_to='path')
tags = models.ManyToManyField(Tag)
def __str__(self):
return self.name.name
serializers.py
class TagSerializers(serializers.ModelSerializer):
class Meta:
model = Tag
fields = ['tag_name']
class FileSerializers(serializers.ModelSerializer):
class Meta:
model = FileUp
fields = ['file']
class CategorySerializers(serializers.HyperlinkedModelSerializer):
files = FileSerializers(source='file_set', many=True, read_only=True)
tags = TagSerializers(many=True)
class Meta:
model = Category
fields = ['id', 'name', 'files', 'tags']
read_only_fields = ['tags']
def create(self, validated_data):
files_data = self.context.get('view').request.FILES
name = Category.objects.create(name=validated_data.get('name'))
for file_data in files_data.values():
FileUp.objects.create(name=name, file=file_data)
return name
вот что я пробовал, я поместил Tag в Category модель, но когда я собираюсь добавить файлы, я не могу добавить теги к немуили выберите теги в панели администратора.Но, если я добавлю Tag в FileUp, я получу сообщение об ошибке, показанное выше.Как я могу применить к тегу FileUp?любая помощь, пожалуйста?