簡體   English   中英

如何在插入數據庫之前檢查記錄是否存在於 django mysql

[英]How to check if record exists in django mysql before insert into database

請原諒我,我對 djando 框架還是陌生的。 這個錯誤我總是得到我運行它。

finance_lens_app.views.acct_type 視圖沒有返回 HttpResponse object。它返回了 None。 這是我的 model

class Acct_type(models.Model):
    Aid=models.AutoField(primary_key=True)
    acct_type_name=models.CharField(max_length=200)
    class Meta:
        db_table="Acct_Type"

這是我的觀點。

def acct_type(request):
    if request.method=='POST':
        request.POST.get('acct_type_name')
        acct_type_record=Acct_type()   
        acct_type_record.save()        
        messages.success(request, 'Account Type Added Successfully...')
        return render(request, "admin_opera/acct_type.html")  

我的界面 HTML

<form method="POST"> 
  {% csrf_token %}
    <div class="input-group mb-3">
     <select name="acct_type_name" id="acct_type_name" class="form-control">
              <option value="Assets">Assets</option>
              <option value="Liabilities">Liabilities</option>
              <option value="Equities">Equities</option>
              <option value="Incomes">Incomes</option>
              <option value="Expenses">Expenses</option>
              <option value="Expenses2">Expenses2</option>
              <option value="Expenses3">Expenses3</option>
    </select>
   
   </div>
      <input class="btn btn-primary btn-lg" type="submit" name="submit" value="Add Account">
</form>

您需要從表單中獲取acct_type_name的值,然后創建Acct_type實例並保存。

def acct_type(request):
    if request.method=='POST':
        acct_type_name = request.POST.get('acct_type_name')
        acct_type_record=Acct_type(acct_type_name = acct_type_name)   
        acct_type_record.save()        
        messages.success(request, 'Account Type Added Successfully...')
        return render(request, "admin_opera/acct_type.html")  

如果要檢查記錄是否存在,則需要通過 Django 表單實現clean的 function 或將unique=True添加到 model 字段。

class Acct_type(models.Model):
    Aid=models.AutoField(primary_key=True)
    acct_type_name=models.CharField(max_length=200, unique=True)
    class Meta:
        db_table="Acct_Type"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM