我正在使用virtualenv来切换我的python dev env.但是当我跑步时workon my_env,我遇到了这样的错误信息:
Error: deactivate must be sourced. Run 'source deactivate'
instead of 'deactivate'.
Usage: source deactivate
removes the 'bin' directory of the environment activated with 'source
activate' from PATH.
Run Code Online (Sandbox Code Playgroud)
在google上进行一些搜索之后,似乎workon在/usr/local/bin/virtualenvwrapper.sh中定义了调用deactivate.并且在Anaconda的bin中有一个同名的脚本,因此它会被workon错误地调用.
有什么建议可以解决这场冲突吗?
有两种型号:Product和Picture.每个都Product可以有几个Picture.当我想使用POST创建产品时,我有疑问.如何POST一个包含ImageField列表的嵌套对象?
该Product模型是:
class Product(models.Model):
product_id = models.AutoField(primary_key=True)
product_name = models.CharField(max_length=50)
description = models.TextField(blank=True)
Run Code Online (Sandbox Code Playgroud)
该Picture模型是:
class Picture(models.Model):
product = models.ForeignKey(Product, related_name='pictures')
path = models.ImageField(null=False, upload_to='product_pic')
description = models.CharField(max_length=255, null=True, blank=True)
main = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
我写了serializer.py如下:
class PictureSerializer(serializers.ModelSerializer):
class Meta:
model = Picture
fields = ('path', 'description', 'main')
class ProductSerializer(serializers.ModelSerializer):
pictures = PictureSerializer(many=True, required=False)
class Meta:
model = Product
fields = ('product_id', 'product_name', 'pictures', 'description')
Run Code Online (Sandbox Code Playgroud)
我使用的观点是:
class ProductEnum(generics.ListCreateAPIView):
queryset = Product.objects.all() …Run Code Online (Sandbox Code Playgroud) 我定义了一个嵌套模型Product如下.每个都Product可以属于很多Productlist.
class Product(models.Model):
product_id = models.AutoField(primary_key=True)
product_name = models.CharField(max_length=50)
class Productlist(models.Model):
productlist_id = models.AutoField(primary_key=True)
productlist_name = models.CharField(max_length=50)
product = models.ManyToManyField(Product, related_name='productlists')
Run Code Online (Sandbox Code Playgroud)
相应的序列化器是:
class ProductlistSerializer(serializers.ModelSerializer):
class Meta:
model = Productlist
fields = ('productlist_id', 'productlist_name',)
class ProductSerializer(serializers.ModelSerializer):
productlists = ProductlistSerializer(many=True, required=False)
class Meta:
model = Product
fields = ('product_id', 'product_name', 'product lists')
def create(self, validated_data):
#some codes
Run Code Online (Sandbox Code Playgroud)
当我POST使用new Product(url(r'^api/products/$', views.ProductEnum.as_view())时,我想更新产品列表,以便将新产品添加到相应的产品列表中.我更喜欢使用的JSON文件是:
{
"product_name": "product1"
"productlist": [
{
"productlist_id": 1,
"productlist_name": "list1",
}, …Run Code Online (Sandbox Code Playgroud) json ×2
anaconda ×1
curl ×1
django ×1
imagefield ×1
nested-lists ×1
post ×1
primary-key ×1
python ×1
virtualenv ×1