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

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

如何從包含帶有外鍵的 django-rest-api 字段的 Angular 選擇下拉字段中獲取

如何從包含帶有外鍵的 django-rest-api 字段的 Angular 選擇下拉字段中獲取

慕蓋茨4494581 2022-12-20 14:58:59
我有一個(gè)Angular在客戶端和Django后端運(yùn)行的應(yīng)用程序,我將其Django-request-framework用于我的模型序列化,由此我的模型有一個(gè)名為的模型Job,該模型又有一個(gè)名為的字段,該字段job_category指向JobCategory像這樣的外鍵關(guān)系中的模型models.pyJobCategory(models.Model):    title = models.CharField(max_value=100)Job(models.Model):    title = models.CharField(max_value=200)    job_category = models.ForeignKeyField(JobCategory, on_delete=models.CASCADE)所以在我的角度組件上,我有一個(gè)選擇字段,它循環(huán)遍歷這樣的工作類別Angular 組件 html 表單<select id="category" class="form-control color-gray" ngModel name='category'>         <option *ngFor='let category of job_categories' [ngValue]="category.id" >{{ category.title }}         </option></select>那時(shí)一切正常,直到我從 Angular 選項(xiàng)中選擇一個(gè)工作類別并發(fā)布它,然后我得到錯(cuò)誤"ValueError at /api/jobs/?Cannot assign "'Companion Care'": "Job.job_category" must be a "JobCategory" instance.我該如何解決這個(gè)問題或者你如何選擇一個(gè)實(shí)例JobCategory?
查看完整描述

1 回答

?
慕姐4208626

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

您依靠此處的字符串方法將外鍵作為人類可讀的名稱傳遞。但是,您的下拉菜單正確傳遞了 ID。我想您也將此序列化程序用于 RetrieveApiView,因此您可以通過一種簡(jiǎn)單的方法在詳細(xì)信息視圖中內(nèi)聯(lián)類別。


要解決這個(gè)更新問題,請(qǐng)使用第二個(gè)序列化程序進(jìn)行更新:


class JobUpdateSerializer(serializers.ModelSerializer):

    category = serializers.PrimaryKeyRelatedField(source='job_category')


    class Meta:

        model = Job

        fields =['id','title','category']

如果你想保留一個(gè)序列化程序,那么你需要做更多的工作來(lái)修復(fù)前端,因?yàn)槟愕挠行лd荷將嵌套,但你可以同時(shí)訪問 id 和 name(通過主鍵更新更安全和更清晰,因?yàn)樗皇芟拗茋?guó)際化,例如):


class JobSerializer(serializers.ModelSerializer):

    category = JobCategorySerializer(source='job_category')


    class Meta:

        model = Job

        fields =['id','title','category']

輸出將是:


{

    "id": 1,

    "title": "dog",

    "category": {

        "id": 2,

        "title": "animal"

    }

}


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

添加回答

舉報(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)