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

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

停止影響 Django 多對(duì)多模型的其他對(duì)象

停止影響 Django 多對(duì)多模型的其他對(duì)象

慕田峪7331174 2023-05-23 10:21:44
我正在嘗試將血型復(fù)制為圖中定義的模型。在我的 models.py 文件中,我有我的代碼來復(fù)制這樣的血型class BloodGroup(models.Model):    name = models.CharField(        max_length=3    )    gives = models.ManyToManyField("self")    receives = models.ManyToManyField("self")    def __str__(self):        return self.name在我的 admin.py 文件中,我按如下方式注冊(cè)了模型class BloodGroupAdmin(admin.ModelAdmin):    model = BloodGroup    list_display = ['name', 'get_gives', 'get_receives']    def get_gives(self, obj):        return ", ".join([item.name for item in obj.gives.all()])    def get_receives(self, obj):        return ", ".join([item.name for item in obj.receives.all()])admin.site.register(BloodGroup, BloodGroupAdmin)最初,我創(chuàng)建了普通的 BloodGroup 對(duì)象,沒有它們的 gives 和 receives 屬性,只提供了它們的名稱。因此,我為所有 8 種類型創(chuàng)建了一個(gè)對(duì)象。然后,當(dāng)我向每個(gè)對(duì)象添加關(guān)系時(shí),我發(fā)現(xiàn)為一個(gè)對(duì)象添加給予或接收也會(huì)影響其他對(duì)象的給予和接收,從而無法復(fù)制圖像中的結(jié)構(gòu)。如何在不影響其他對(duì)象的情況下定義關(guān)系?在我的管理站點(diǎn)中,我看到字段名稱為“get_gives”和“get_receives”。我如何使管理頁面將字段名稱顯示為“提供”和“接收”,但仍將對(duì)象顯示為如下圖所示的字符串?
查看完整描述

1 回答

?
HUX布斯

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

對(duì)于第一個(gè)問題,可能最好只有一個(gè)關(guān)系gives。從反向查詢receives可以查到。像這樣:

class BloodGroup(models.Model):

? ? name = models.CharField(

? ? ? ? max_length=3

? ? )

? ? gives = models.ManyToManyField("self", related_name="receives", symmetrical=False)

然后你只需要添加對(duì)象到gives. receives會(huì)自動(dòng)生成。

對(duì)于第二個(gè)問題,將short_description屬性添加到函數(shù)。像這樣:

get_gives.short_description?=?'Gives'
get_receives.short_description?=?'Receives'


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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