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

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

如何在表單中顯示只讀唯一標(biāo)識?

如何在表單中顯示只讀唯一標(biāo)識?

一只名叫tom的貓 2023-01-04 11:22:43
我目前有一個(gè)稱為服務(wù)的模型,顯示在這里...class Services(models.Model):    service_sku = models.AutoField(primary_key=True)    name = models.CharField(max_length=200, null=True)    price = models.FloatField(null=True)forms.pyclass ServiceForm(forms.ModelForm):    class Meta:        model = Services        fields = '__all__'基于上面顯示的代碼,我有兩個(gè)視圖,一個(gè)將創(chuàng)建上面模型的實(shí)例,另一個(gè)視圖將更新實(shí)例,如下所示def NewServices(request):    form = ServiceForm()    if request.method == 'POST':        form = ServiceForm(request.POST or None)        if form.is_valid():            form.save()            return redirect('/')    return render(request, 'accounts/new_services.html', {'form': form})def EditServices(request,pk):    service = Services.objects.get(service_sku=pk)    form = ServiceForm(instance=service)    if request.method == 'POST':        form = ServiceForm(request.POST, instance=service)        if form.is_valid():            form.save()            return redirect('/')    context = {'form':form}    return render(request, 'accounts/edit_services.html',context)模板如下<div class="row">    <div class="col-md-7">        <div class="card card-body">            <form action="" method="POST">                {% csrf_token %}                {{form}}                <hr>                <input type="submit" name="Update">            </form>        </div>    </div></div>是否可以在我的模板表單中顯示 service_sku 的 readyonly,當(dāng)實(shí)例需要更新時(shí)以及 service_sku readonly 在創(chuàng)建實(shí)例時(shí)顯示為在模板中自動生成?
查看完整描述

1 回答

?
白板的微信

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

是的。您可以在表單中包含該字段,因此您可能應(yīng)該制作一個(gè)單獨(dú)的表單來更新:


class ServiceEditForm(forms.ModelForm):

    service_sku = forms.IntegerField(disabled=True)


    class Meta:

        model = Services

        fields = ('service_sku', 'name', 'price')

在表單中,您只需使用該新表單:


def EditServices(request,pk):

    service = Services.objects.get(service_sku=pk)

    if request.method == 'POST':

        form = ServiceEditForm(request.POST, request.FILES, instance=service)

        if form.is_valid():

            form.save()

            return redirect('/')

    else:

        form = ServiceEditForm(instance=service)

    context = {'form':form}

    return render(request, 'accounts/edit_services.html', context)

使用disabled=True[Django-doc]不僅可以確保該字段在客戶端被禁用,而且還可以防止有人發(fā)出惡意的 POST 請求。



查看完整回答
反對 回復(fù) 2023-01-04
  • 1 回答
  • 0 關(guān)注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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