psycopg2 現在對我來說是一個青春期的孩子。
cur = conn.cursor()
url = "https://shofi-mod.s3.us-east-2.amazonaws.com/" str(rawbucketkey)
query = f"""UPDATE contentcreatorcontentfeedposts_contentfeedpost
SET picturemediatype = TRUE, mediakey ={rawbucketkey},
mediaurl= "{url}", active = TRUE, postsubmit = FALSE
WHERE contentcreator_id ={userid} AND
id ={contentpostid};
COMMIT;"""
cur.execute(query)
cur.close()
但我不斷收到錯誤訊息:
[ERROR] UndefinedColumn: column "https://shofi-mod.s3.us-east-2.amazonaws.com/061909729140543151" does not exist
LINE 3: mediaurl= "https://shofi-mod.s3.us-east-...
^
Traceback (most recent call last):
File "/var/task/lambdarunner.py", line 163, in lambda_handler
cur.execute(query)
我的資料庫實際上有一個媒體專欄
class ContentFeedPost(models.Model):
contentcreator = models.ForeignKey(ContentCreatorUsers, on_delete=models.CASCADE)
creationtimestamp = models.DateTimeField(auto_now_add=True)
likes = models.BigIntegerField(default= 0)
favoritedtimes = models.BigIntegerField(default=0)
tipcount = models.IntegerField(default=0)
mediakey = models.CharField(max_length=200, null=True, blank=True)
mediaurl = models.CharField(max_length=200, null=True, blank=True)
audiomediatype = models.BooleanField(default=False)
videomediatype = models.BooleanField(default=False)
audiotitle = models.CharField(max_length=100, null=True, blank=True)
videoplaceholderimage = models.CharField(max_length=200, blank=True, null=True)
videoplaceholderimagekey = models.CharField(max_length=200, blank=True, null=True)
audioplaceholderimage = models.CharField(max_length=200, blank=True, null=True)
audioplaceholderimagekey = models.CharField(max_length=200, blank=True, null=True)
picturemediatype = models.BooleanField(default=False)
postsubmit = models.BooleanField(default=True)
posttext = models.CharField(max_length=1000, blank=True, null=True)
active = models.BooleanField(default=False)
以上是django ORM定義
奇怪的是,它似乎在抱怨我試圖將列 mediaurl 設定為的值。這沒有任何意義。我做錯了什么很明顯嗎?
uj5u.com熱心網友回復:
Postgres 中的字串值由單引號分隔,而不是雙引號。雙引號用于分隔復雜的列名。
順便說一句,您應該讓 psycopg2 進行替換。這將立即解決問題:
cur = conn.cursor()
url = "https://shofi-mod.s3.us-east-2.amazonaws.com/" str(rawbucketkey)
query = """UPDATE contentcreatorcontentfeedposts_contentfeedpost
SET picturemediatype = TRUE, mediakey = %s,
mediaurl= %s, active = TRUE, postsubmit = FALSE
WHERE contentcreator_id = %s AND
id = %s;
COMMIT;"""
cur.execute(query, (rawbucketkey, url, userid, contentpostid) )
cur.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/370669.html
標籤:Python 姜戈 aws-lambda sql更新 psycopg2
上一篇:在Django中設定的查詢
