Я знаю, что есть несколько вопросов, касающихся этой проблемы, но я еще не решил ее. Я использую DRF в первый раз, и я работаю с вложенными сериализаторами. Мой Ресторан Serializer указует на категорию сериализатор через поле, связанное пробковое как это показывает нижеDRF Исключительное значение: Невозможно назначить - это должен быть экземпляр
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = (
'name',
'description'
)
class RestaurantSerializer(serializers.HyperlinkedModelSerializer):
category = serializers.SlugRelatedField(
many=True,
read_only=False,
queryset=Category.objects.all(),
slug_field='name'
)
class Meta:
model = Restaurant
fields = (
'id',
'name',
'description',
'website',
'twitter',
'facebook',
'instagram',
'category'
)
Я посылаю все необходимые данные для моей конечной точки, чтобы создать новый ресторан через JQuery, но я получаю «Невозможно назначить» [< Категория: Итальянская кухня>] ":" Restaurant.category "должен быть экземпляром категории."
Я понимаю, что мне нужно назначить объект категории категории Ресторана, хотя я не знаю, как получить доступ к моему запросу, чтобы извлечь объект, который имеет значение.
Все советы на это?
Edit: Это данные я отправляю из JQuery в моей конечной
{"name":"Restaurant","email":"[email protected]","password":"1234","category":["Italian food"],"description":"Description test"}
Edit # 2 См определения модели ниже
class Restaurant(models.Model):
name = models.CharField(max_length=80, null=False)
description = models.TextField(max_length=300, null=False)
email = models.EmailField(max_length=80, null=True)
password = models.CharField(max_length=60, null=False)
website = models.URLField(max_length=80, null=True)
twitter = models.CharField(max_length=60, null=True, blank=True)
facebook = models.CharField(max_length=60, null=True, blank=True)
instagram = models.CharField(max_length=60, null=True, blank=True)
category = models.ForeignKey('Category')
def __unicode__(self):
return self.name
class Category(models.Model):
name = models.CharField(max_length=80, null=False)
description = models.TextField(max_length=100, null=False)
def __unicode__(self):
return self.name
Можете ли вы показать точные данные, которые вы используете для кормления 'RestaurantSerializer'? – GwynBleidD
Несомненно. См. Мое редактирование – user1659653
И модель? В частности, какова связь между рестораном и категорией? –