Penggunaan nilai default NULL dalam Model Django

Model adalah salah satu bagian penting dari aplikasi Django berbasis database. Model mendefinisikan struktur database. Tipe data tabel database dan cara memasukkan data berdasarkan atribut yang berbeda dijelaskan dalam Model. Validasi data dapat dikontrol dengan menggunakan model juga. Setiap tabel dalam database berisi sejumlah bidang atau kolom tertentu. Model mendefinisikan jenis setiap bidang tabel. Atribut default digunakan dalam model untuk menetapkan nilai default untuk area tertentu jika user untuk bidang tersebut tidak memasukkan data. Nilai default dari suatu bidang dapat berupablankatau nilai tertentu. Itunull dan blank nilainya tidak sama. nulldigunakan untuk menentukan bahwa nilai kosong diperbolehkan atau tidak untuk bidang tertentu. jikanull diatur ke False, maka string kosong tidak akan diizinkan di bidang bertipe integer, tetapi string kosong dapat ditetapkan di bidang bertipe string. jikanull diatur ke True, maka nilai NULL akan diberikan dalam bidang bertipe integer sebagai pengganti string kosong. blank digunakan untuk validasi formulir terutama dan tidak memeriksa tipe data bidang. Cara menggunakandefault dan null atribut dalam model Django telah ditunjukkan dalam tutorial ini.

Prasyarat:

Sebelum mempraktikkan skrip tutorial ini, Anda harus menyelesaikan tugas-tugas berikut.

A. Instal Django versi 3+ di Ubuntu 20+ (lebih disukai)
B. Buat proyek Django
C. Jalankan server Django untuk memeriksa server bekerja dengan benar atau tidak.

Siapkan aplikasi Django:

A. Jalankan perintah berikut untuk membuat aplikasi Django bernama databaseapp.

$ python3 manage.py startapp databaseapp

B. Jalankan perintah berikut untuk membuat user untuk mengakses database Django. Jika Anda telah menyelesaikan user sebelumnya, maka Anda tidak perlu menjalankan perintah.

$ python3 manage.py createsuperuser

C. Tambahkan nama aplikasi di INSTALLED_APP bagian dari file settings.py.

INSTALLED_APPS = [
    …..
    'validationapp'
]

D. Buat folder bernama templates di dalam databaseapp folder dan atur template’s lokasi aplikasi di TEMPLATES bagian dari settings.py mengajukan.

TEMPLATES = [
    {
….
            'DIRS': ['/home/fahmida/django_pro/databaseapp/templates'],
             ….
      },
]

Model desain dengan atribut default dan null:

Ubah models.py file dengan skrip berikut untuk membuat tabel bernama productsyang akan berisi empat bidang tanpa bidang id. Ininames, price, manufacturing_date, and expire_date. Nilai dari nullatribut diatur ke True untuk semua bidang. Nilai darithe blankatribut diatur ke True untuk semua bidang juga. Ini berarti user dapat mengosongkan bidang sebelum mengirimkan formulir yang akan menggunakan model ini. Itudefault nilai atribut ditetapkan untuk harga, tanggal_produksi, dan tanggal_kedaluwarsa.

model.py

# Import models module
from django.db import models

# Create class to define the structure of Teachers table
class Product(models.Model):
    name = models.CharField(max_length=50, null=True, blank=True)
    price = models.IntegerField(null=True, default=’’, blank=True)
    manufacturing_date = models.DateField(null=True, default='0000-00-00', blank=True)
    expire_date = models.DateField(null=True, default='0000-00-00', blank=True)

Jalankan perintah migrasi berikut untuk membuat file migrasi yang diperlukan dan tabel database database SQLite.

$ python3 manage.py makemigrations databaseapp
$ python3 manage.py migrate

Penyisipan data menggunakan Dasbor Administrasi Django:

Ubah konten dari the admin.py file dengan skrip berikut untuk mendaftarkan model dalam database.

admin.py
Ubahurls.py file dengan skrip berikut untuk menentukan jalur untuk membuka Dasbor Administratif Django.

urls.py

# Import admin module
from django.contrib import admin
# Import path module
from django.urls import path


# Define path for customer and admin
urlpatterns = [
      path('admin/', admin.site.urls)
]

Sekarang, jalankan server Django dan pergi ke Dasbor Administratif Django dengan menggunakan URL berikut.

http://localhist:8000/admin

buka formulir entri produk dengan mengklik Add product. Jika user mengirimkan formulir tanpa memasukkan data, maka output berikut akan muncul di browser. Di sini, dua bidang tanggal menunjukkan error karena nilai default bidang tanggal tidak dalam format yang valid.

Output berikut akan muncul setelah menambahkan data tanggal yang valid. Di sini,price bidang kosong untuk menggunakan atribut default.

Penyisipan data menggunakan template:

Cara memasukkan data ke dalam products tabel menggunakan formulir HTML telah ditampilkan di bagian ini. Disini elemen form akan di generate berdasarkan model yang telah dibuat sebelumnya.

form.py

# Import forms module
from django import forms
# Import Customer model
from dbapp.models import Product

# Define the class for the customer form
class ProductForm(forms.ModelForm):
    class Meta:
        model = Product
        fields = '__all__'

Buat file HTML bernama product.html di dalam templatesfolder aplikasi dengan skrip berikut. Data formulir akan dikirimkan ketika user mengklik tombolSave tombol.

produk.html

<h2>Customer Entry Form</h2>

<form method="POST" class="post-form">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit" class="save btn btn-default">Save</button>
</form>

Ubah views.py file dengan skrip berikut untuk memasukkan data ke dalam products tabel setelah memvalidasi formulir. AddProduct()fungsi didefinisikan dalam skrip untuk memeriksa formulir dikirimkan atau tidak, dan jika formulir dikirimkan, maka itu akan memeriksa apakah data formulir valid atau tidak valid. Jikais_valid() fungsi kembali true, maka data tersebut akan dimasukkan ke dalam products tabel, dan pesan sukses akan ditampilkan di browser.

views.py

# Import HttpResponse module
from django.http.response import HttpResponse
# Import render module
from django.shortcuts import render
# Import ProductForm
from dbapp.forms import ProductForm

# Define function to add product entry
def AddProduct(request):
    if request.method == "POST":
        form = ProductForm(request.POST)
        # If the form data are valid or not
        if form.is_valid():
            try:
                # Save the form data into the database
                form.save()
                # Define the message for the user
                data = ['<p>Product added.</p>']
                # Return the response
                return HttpResponse(data)
            except:
                pass
    else:
        # Define the form object
        form = ProductForm()
        # Show the product entry form
        return render(request, 'product.html', {'form': form})

Ubah urls.py file dengan skrip berikut untuk menentukan jalur untuk memanggil fungsi tampilan.

urls.py

# Import admin module
from django.contrib import admin
# Import path module
from django.urls import path
# Import view
from dbapp import views

# Define path for customer and admin
urlpatterns = [
    path('', views.AddProduct),
    path('admin/', admin.site.urls)
]

Sekarang, jalankan server Django dan buka URL dasar di browser.

http://localhist:8000/

Akan muncul formulir berikut.

Pengikut ValueErrorakan muncul jika user mengirimkan formulir tanpa menambahkan data apa pun di formulir. Di sini,price field adalah bilangan bulat yang tidak boleh berupa string kosong.

Jika user memasukkan data yang valid seperti formulir di bawah ini dan menekan tombol Save tombol, catatan produk baru akan dimasukkan ke dalam database.

Gambar berikut akan muncul jika Anda membuka catatan yang baru dimasukkan dari Dasbor Django.

Kesimpulan:

Sebuah model telah dirancang dengan menggunakan atribut null, dan default dalam tutorial ini. Selanjutnya, cara-cara menyisipkan data dalam bidang-bidang ini di back-end dan front-end telah diperlihatkan di sini untuk membantu pembaca mengetahui useran atribut default dan null dalam database Django.

Related Posts