Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django储蓄到国外_Python_Django_Django Models_Orm - Fatal编程技术网

Python Django储蓄到国外

Python Django储蓄到国外,python,django,django-models,orm,Python,Django,Django Models,Orm,我正在尝试根据topCategory和middleCategory的外键主键保存项目 models.py class MiddleCategory(models.Model): title = models.CharField(max_length=50) slug = models.SlugField() def __str__(self): return self.title class TopCategory(models.Model):

我正在尝试根据topCategory和middleCategory的外键主键保存项目

models.py

class MiddleCategory(models.Model):
    title = models.CharField(max_length=50)
    slug = models.SlugField()
    def __str__(self):
        return self.title

class TopCategory(models.Model):
    title = models.CharField(max_length=50)
    slug = models.SlugField()
    middleCategory = models.ManyToManyField(MiddleCategory)
    def __str__(self):
        return self.title


# Item
class Product(models.Model):
    title = models.CharField(max_length=500, db_index=True)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    brand = models.CharField(max_length=100)
#     brand_id = models.IntegerField()
    retailer = models.CharField(max_length=255)
    image = models.CharField(max_length=1000)
    url = models.URLField(max_length=800, unique=True, default='')
    model_numbers = models.BigIntegerField(default=0)
    description = models.CharField(max_length=500)


    featured = models.CharField(max_length=255, db_index=True, default='NO')
    timestamp = models.DateTimeField(auto_now=True)

    topCategory = models.ForeignKey(TopCategory)
    middleCategory = models.ForeignKey(MiddleCategory)

    def __str__(self):
        return self.title
在我的脚本中,我是这样保存的:

            Product(title=title,
                    price=price,
                    brand=brand,
                    retailer=retailer,
                    image=image, 
                    url=url,
                    description=description, 

                    midCategory=midCategory,
                    topCategory=topCategory
                    ).save()
这就是我得到的错误:


ValueError:无法分配“'1'”:“Product.topCategory”必须是“topCategory”实例。

您可以获取topCategory的实例

instance = TopCategory.objects.get(id=topCategory)
然后


你能打印什么是topCategory吗?是的,它是一个整数“1”。我检查了TopCategory类的主键,发现有一个“1”;您需要的是TopCategory的实际实例,而不是它的主键。我也在shell中对此进行了测试。我尝试了以下方法:topCategory='Computing'&topCategory=1。两个都不起作用。这可能是因为TopCategory有一个“manytomy”字段吗?很好,这就是工作,我知道现在缺少了什么。谢谢
Product(title=title,
                    price=price,
                    brand=brand,
                    retailer=retailer,
                    image=image, 
                    url=url,
                    description=description, 
                    midCategory=midCategory,
                    topCategory=instance
                    ).save()