18👍
Yes, the difference is, the column name in the database for the primary key is category_id
and in the second case is id
.
One way you can make the second example emulate the first one is:
class Category(models.Model):
category_name = models.CharField(max_length=50)
@property
def category_id(self):
return self.id
From the documentation,
AutoField
An IntegerField that automatically increments according to available IDs. You usually won’t need to use this directly; a primary key field will automatically be added to your model if you don’t specify otherwise
1👍
The difference is field name.
For example, I definded the model "Category" with the field "category_id":
# "myapp/models.py"
from django.db import models
class Category(models.Model):
category_id = models.AutoField(primary_key=True)
category_name = models.CharField(max_length=50)
Then, run this command below:
python manage.py makemigrations && python manage.py migrate
Now, I opened "db.sqlite3" then the field name is "category_id":
Next, I definded the model "Category" without the field "category_id":
# "myapp/models.py"
from django.db import models
class Category(models.Model):
category_name = models.CharField(max_length=50)
Then, run this command below:
python manage.py makemigrations && python manage.py migrate
Now, I opened "db.sqlite3" then the field name is "id":
- [Django]-Negating a boolean in Django template
- [Django]-How do I deploy Django on AWS?
- [Django]-How can I get MINIO access and secret key?