第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Python Django 使用錯(cuò)誤的查詢

Python Django 使用錯(cuò)誤的查詢

猛跑小豬 2023-07-11 15:28:46
我有一個(gè)問(wèn)題,為了解決它,我嘗試進(jìn)入 shell,但我找不到解決方案,所以我希望你能幫助我。我正在導(dǎo)入包含 id 和圖像 URL 的模型圖像,但由于此錯(cuò)誤我無(wú)法獲取它。代碼:from recipes_database.models import Images Images.objects.all()這里是錯(cuò)誤:Traceback (most recent call last):   File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute    return self.cursor.execute(sql, params)   File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\backends\sqlite3\base.py", line 413, in execute    return Database.Cursor.execute(self, query, params) sqlite3.OperationalError: no such column: Images.idThe above exception was the direct cause of the following exception:Traceback (most recent call last):   File "<console>", line 1, in <module>   File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\models\query.py", line 263, in __repr__    data = list(self[:REPR_OUTPUT_SIZE + 1])   File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\models\query.py", line 269, in __len__    self._fetch_all()   File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\models\query.py", line 1303, in _fetch_all但是當(dāng)我對(duì)其他模型做同樣的事情時(shí),它起作用了,我想知道這次有什么不同。這是我的圖像模型:class Images(models.Model):    # Field name made lowercase.    rezept_id = models.ForeignKey(        'Rezepte', models.DO_NOTHING, db_column='Rezept_ID', blank=True, null=True)    # Field name made lowercase.    image_url = models.CharField(        db_column='Image_URL', blank=True, null=True, max_length=1000)    class Meta:        managed = False        db_table = 'Images'我認(rèn)為 Django 以某種方式使用了錯(cuò)誤的查詢,因?yàn)闆](méi)有 Images.id,只有 Images.recipe_id。希望你能幫助我謝謝!
查看完整描述

1 回答

?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果您自己沒(méi)有指定主鍵,?Django會(huì)自動(dòng)添加主鍵。事實(shí)上,正如文檔所說(shuō):

默認(rèn)情況下,Django 為每個(gè)模型提供以下字段:

id?=?models.AutoField(primary_key=True)

這是一個(gè)自動(dòng)遞增的主鍵。

如果您想指定自定義主鍵,請(qǐng)?jiān)谀淖侄沃簧?strong>指定 。primary_key=True如果 Django 發(fā)現(xiàn)您已顯式設(shè)置Field.primary_key,它不會(huì)添加自動(dòng) id 列。

在你的模型中,你沒(méi)有設(shè)置主鍵,所以Django會(huì)自動(dòng)添加一個(gè)額外的字段id,這也將在查詢中使用。

例如,如果image_url是主鍵,您可以將其指定為:

# image_url is the primary key


class Images(models.Model):

? ? # Field name made lowercase.

? ? rezept = models.ForeignKey(

? ? ? ? 'Rezepte',

? ? ? ? models.DO_NOTHING,

? ? ? ? db_column='Rezept_ID',

? ? ? ? blank=True,

? ? ? ? null=True

? ? )

? ? # Field name made lowercase.

? ? image_url = models.CharField(

? ? ? ? db_column='Image_URL',

? ? ? ? blank=True,

? ? ? ? null=True,

? ? ? ? max_length=1000,

? ? ? ? primary_key=True

? ? )


? ? class Meta:

? ? ? ? managed = False

? ? ? ? db_table = 'Images'

如果 therezept是主鍵,那么它也意味著它是唯一的,在這種情況下,將其設(shè)為OneToOneField[Django-doc]更有意義,因?yàn)樗哂蠪oreignKey唯一性約束,而且它還有一些含義的逆向關(guān)系:


# rezept is the primary key


class Images(models.Model):

? ? # Field name made lowercase.

? ? rezept = models.OneToOneField(

? ? ? ? 'Rezepte',

? ? ? ? db_column='Rezept_ID',

? ? ? ? primary_key=True

? ? )

? ? # Field name made lowercase.

? ? image_url = models.CharField(

? ? ? ? db_column='Image_URL',

? ? ? ? blank=True,

? ? ? ? null=True,

? ? ? ? max_length=1000

? ? )


? ? class Meta:

? ? ? ? managed = False

? ? ? ? db_table = 'Images'

注意:通常不會(huì)_id向ForeignKey字段添加后綴,因?yàn)?Django 會(huì)自動(dòng)添加一個(gè)帶有_id后綴的“孿生”字段。因此應(yīng)該是rezept,而不是rezept_id。


查看完整回答
反對(duì) 回復(fù) 2023-07-11
  • 1 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)