Если у вас есть такая конфигурация:
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/var/www/example.com"
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>
Раскомментируйте следующие строки в вашем httpd.conf
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
Это работает для меня
SlugRelatedField
, предоставленный инфраструктурой Django REST, как и многие связанные с ним поля, предназначен для использования с уже существующими объектами. Поскольку вы ищете ссылку на объекты, которые уже существуют, или объект, который нужно создать, вы не сможете использовать его как есть.
Вам понадобится пользовательский SlugRelatedField
, который создает новый объект, если его не существует.
class CreatableSlugRelatedField(serializers.SlugRelatedField):
def to_internal_value(self, data):
try:
return self.get_queryset().get_or_create(**{self.slug_field: data})[0]
except ObjectDoesNotExist:
self.fail('does_not_exist', slug_name=self.slug_field, value=smart_text(data))
except (TypeError, ValueError):
self.fail('invalid')
class MerchantSerializer(serializers.ModelSerializer):
phones = CreateableSlugRelatedField(
many=True,
slug_field='phone',
queryset=primitives.Phone.objects.all()
)
class Meta:
model = Merchant
fields = (
'merchant_id',
'name',
'is_active',
'phones',
)
При переключении на get_or_create
объект номера телефона будет создан, если он еще не существует. Возможно, вам придется настроить его, если на модели будут созданы дополнительные поля.
Вы должны указать значение для поля телефона объекта Phone. Если вы хотите создать объект телефона без указания значения для полевого телефона, вам нужно включить пустые и пустые поля.
phone = models.CharField(max_length=255,null=true,blank=true)
Если у вас по-прежнему возникают проблемы, убедитесь, что данные сообщения содержат необходимые поля. Вы можете использовать ipdb для этого.
smart_text
иObjectDoesNotExist
. – Matt 18 December 2017 в 21:20get_or_create
, как можно повыситьObjectDoesNotExist
? – Matt 19 December 2017 в 03:37