Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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
如何在每次运行django代码时创建新的postgreSQL行以保存数据_Django_Postgresql_Django Orm_Web Development Server - Fatal编程技术网

如何在每次运行django代码时创建新的postgreSQL行以保存数据

如何在每次运行django代码时创建新的postgreSQL行以保存数据,django,postgresql,django-orm,web-development-server,Django,Postgresql,Django Orm,Web Development Server,我现在有一个疑问,当我执行我的脚本时,我是否能够将它保存在一行中 My models.py有两个表格(或类)页面和类别 返回自己的标题 此代码是从我的视图中剪下来的。py 当我再次或每次执行它时,它会覆盖同一行,这与我使用它的方式是有道理的 如何在每次运行脚本时创建新行,以便在新行中保存新数据,而不是覆盖同一行 我曾想过每次运行脚本时使用python“random”从列表中选择一个随机字母(例如g),然后加入它以获得类似“g.price”的内容,但这有26个字母的限制,随机但不是唯一的,因此

我现在有一个疑问,当我执行我的脚本时,我是否能够将它保存在一行中

My models.py有两个表格(或类)页面和类别 返回自己的标题 此代码是从我的视图中剪下来的。py



当我再次或每次执行它时,它会覆盖同一行,这与我使用它的方式是有道理的

如何在每次运行脚本时创建新行,以便在新行中保存新数据,而不是覆盖同一行

我曾想过每次运行脚本时使用python“random”从列表中选择一个随机字母(例如g),然后加入它以获得类似“g.price”的内容,但这有26个字母的限制,随机但不是唯一的,因此可以生成相同的字母(尽管我可以对此进行“if”检查)


是否有一种简单而正确的方法来执行此操作?

我不确定为什么默认情况下不插入它们,但您可以强制Django这样做。 官方文件表明:

在某些罕见的情况下,必须能够强制save()方法执行SQL插入,而不是退回到执行更新。反之亦然:如果可能,更新,但不插入新行。在这些情况下,可以将force_insert=True或force_update=True参数传递给save()方法。显然,传递这两个参数是错误的:不能同时插入和更新


我不确定默认情况下为什么不插入它们,但您可以强制Django这样做。 官方文件表明:

在某些罕见的情况下,必须能够强制save()方法执行SQL插入,而不是退回到执行更新。反之亦然:如果可能,更新,但不插入新行。在这些情况下,可以将force_insert=True或force_update=True参数传递给save()方法。显然,传递这两个参数是错误的:不能同时插入和更新

Models.py:-

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=128, unique=True)

    def __unicode__(self):
        return self.name

class Page(models.Model):
    name = models.ForeignKey(Category)
    title = models.CharField(max_length=128)
    url = models.URLField()
    views = models.IntegerField(default=0)
    price = models.IntegerField(default=0)



    def __unicode__(self):
views.py:-

如果要更新特定类别的页面,请执行以下操作:-

a = Category.objects.get(name=nameField) #Fetch reference object for which category name you want to add page

x = India(symb)

b = Page.objects.filter(name=a).update(title=symb,price = float(x['Price']))
x = India(symb)

a = Category.objects.create(name = x['Company Name']) 

b = Page.objects.create(name=a,title=symb,price = float(x['Price']))

b.save()
如果要添加新类别和页面,请执行以下操作:-

a = Category.objects.get(name=nameField) #Fetch reference object for which category name you want to add page

x = India(symb)

b = Page.objects.filter(name=a).update(title=symb,price = float(x['Price']))
x = India(symb)

a = Category.objects.create(name = x['Company Name']) 

b = Page.objects.create(name=a,title=symb,price = float(x['Price']))

b.save()
Models.py:-

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=128, unique=True)

    def __unicode__(self):
        return self.name

class Page(models.Model):
    name = models.ForeignKey(Category)
    title = models.CharField(max_length=128)
    url = models.URLField()
    views = models.IntegerField(default=0)
    price = models.IntegerField(default=0)



    def __unicode__(self):
views.py:-

如果要更新特定类别的页面,请执行以下操作:-

a = Category.objects.get(name=nameField) #Fetch reference object for which category name you want to add page

x = India(symb)

b = Page.objects.filter(name=a).update(title=symb,price = float(x['Price']))
x = India(symb)

a = Category.objects.create(name = x['Company Name']) 

b = Page.objects.create(name=a,title=symb,price = float(x['Price']))

b.save()
如果要添加新类别和页面,请执行以下操作:-

a = Category.objects.get(name=nameField) #Fetch reference object for which category name you want to add page

x = India(symb)

b = Page.objects.filter(name=a).update(title=symb,price = float(x['Price']))
x = India(symb)

a = Category.objects.create(name = x['Company Name']) 

b = Page.objects.create(name=a,title=symb,price = float(x['Price']))

b.save()

你是说我不需要使用新变量将其保存在新行中?例如:p.title-->进入第1行我是否应该使用a.title-->将其保存在另一行?@sujithjohn,请将您的模型发布在此处?也许主键有问题,你是说我不需要使用新变量将其保存在新行中?例如:p.title-->进入第1行我是否应该使用a.title-->将其保存在另一行?@sujithjohn,请将您的模型发布在此处?也许主键有问题,我想这会有用的,我今天就试试。我也给出了a.save()和b.save(),对吗?每次我添加一个新类别,它都会保存到一个新行,而不会覆盖?谢谢!那有帮助!!我想这会管用的,我今天就试试。我也给出了a.save()和b.save(),对吗?每次我添加一个新类别,它都会保存到一个新行,而不会覆盖?谢谢!那有帮助!!