Error Change Datetime Model Django

Maksud dari judul diatas adalah ketika kalian membuat sebuat class di dalam models.py yang difungsikan untuk generate sebuah field dengan format datefield.

Ketika kalian melakukan makemigrations / migrate akan terjadi error pada saat melakukan perubahan pada class model datefield, mungkin menambahkan blank false / null false. Pesan error yang terjadi sehingga tidak dapat menggenerate otomatis adalah sebagai berikut :

TypeError: expected string or bytes-like object

TypeError: Required argument ‘year’ (pos 1) not found

Bagaiamana solusinya ? apabila kalian mengalami migrate error, sebaiknya hal pertama yang harus kalian lakukan adalah menghapus file terakhir yang ada didalam migrations. Biasanya nama filenya berupa kode-kode dan apabila dibuka file tersebut adalah file perubahan yang terjadi pada model.

Setelah dihapus file migaration terakhir, sekarang coba untuk makemigration ulang dan khusus untuk model datefield apabila ada pertanyaan seperti dibawah ini maka harus dijawab dengan :

You are trying to change the nullable field ‘trx_date’ on stok to non-nullable without a default; we can’t do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Ignore for now, and let me handle existing rows with NULL myself (e.g. because you added a RunPython or RunSQL operation to handle NULL values in a previous data migration)
3) Quit, and let me add a default in models.py

Silahkan pilih / masukan angka 1 yang artinya memilih opsi pertama dari 3 pertanyaan diatas.

Setelah itu akan ada pertanyaan lanjutan seperti ini :

Please enter the default value now, as valid Python
The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now
Type ‘exit’ to exit this prompt

Jawablah dengan memasukan datetime.date.today. Maka makemigrations dan migrate kalian akan berhasil.

Author: Hafid

Hi! My name is Hafid and I'm Indonesian DKI Jakarta. Here's my profile www.mhafid.com. In here, I share a lot of information about programming and linux there.

Leave a Reply

Your email address will not be published. Required fields are marked *