[英]I'm getting an datetime error while making an car renting django web application
我正在使用 django 創建一個基於 Web 的汽車租賃應用程序。 即使我從代碼中刪除了 datetime 屬性或函數,我也會收到以下錯誤
python manage.py migrate
Operations to perform:
Apply all migrations: admin, app, auth, contenttypes, sessions
Running migrations:
Applying app.0006_cart_car_cart_quantity_cart_renting_date_and_more...Traceback (most recent call last):
File "D:\Rushikesh\Code\car_rent\quickrents\manage.py", line 22, in <module>
main()
File "D:\Rushikesh\Code\car_rent\quickrents\manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\core\management\__init__.py", line 446, in execute_from_command_line
utility.execute()
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\core\management\__init__.py", line 440, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\core\management\base.py", line 414, in run_from_argv
self.execute(*args, **cmd_options)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\core\management\base.py", line 460, in execute
output = self.handle(*args, **options)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\core\management\base.py", line 98, in wrapped
res = handle_func(*args, **kwargs)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\core\management\commands\migrate.py", line 290, in handle
post_migrate_state = executor.migrate(
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\migrations\executor.py", line 131, in migrate
state = self._migrate_all_forwards(
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\migrations\executor.py", line 163, in _migrate_all_forwards
state = self.apply_migration(
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\migrations\executor.py", line 248, in apply_migration
state = migration.apply(state, schema_editor)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\migrations\migration.py", line 131, in apply
operation.database_forwards(
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\migrations\operations\fields.py", line 108, in database_forwards
schema_editor.add_field(
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\backends\sqlite3\schema.py", line 381, in add_field
self._remake_table(model, create_field=field)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\backends\sqlite3\schema.py", line 230, in _remake_table
self.effective_default(create_field)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\backends\base\schema.py", line 410, in effective_default
return field.get_db_prep_save(self._effective_default(field), self.connection)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\models\fields\__init__.py", line 910, in get_db_prep_save
return self.get_db_prep_value(value, connection=connection, prepared=False)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\models\fields\__init__.py", line 1546, in get_db_prep_value
value = self.get_prep_value(value)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\models\fields\__init__.py", line 1524, in get_prep_value
value = super().get_prep_value(value)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\models\fields\__init__.py", line 1403, in get_prep_value
return self.to_python(value)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\db\models\fields\__init__.py", line 1485, in to_python
parsed = parse_datetime(value)
File "D:\Rushikesh\Code\car_rent\ecp\lib\site-packages\django\utils\dateparse.py", line 114, in parse_datetime
return datetime.datetime.fromisoformat(value)
TypeError: fromisoformat: argument must be str
我嘗試使用 datetime 函數制作My_Orders頁面,但得到了同樣的錯誤。
所以我刪除了日期時間代碼,使它像以前一樣,但也得到了同樣的錯誤。
無法解決這個問題。
當我嘗試運行它正在執行的代碼時。
但警告如下進行 6 次遷移。
但是當我嘗試進行遷移時,會彈出上述錯誤。
這是我的 models.py 文件中的代碼。
from django.db import models
from django.contrib.auth.models import User
from django.core.validators import MaxValueValidator, MinValueValidator
STATE_CHOICE = (
('Maharashtra','Maharashtra'),
('Rajasthan','Rajasthan'),
('Delhi','Delhi'),
('Tamil Nadu','Tamil Nadu'),
('Madhya Pradesh','Madhya Pradesh'),
('Gujrat','Gujrat'),
)
class Customer(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=200)
locality = models.CharField(max_length=200)
city = models.CharField(max_length=50)
zipcode = models.IntegerField()
state = models.CharField(choices=STATE_CHOICE, max_length=50)
mobile = models.IntegerField()
def __str__(self):
return str(self.id)
CATEGORY_CHOICES = (
('H','HATCHBACK'),
('S','SEDAN'),
('SUV','SUV'),
('MUV','MUV'),
)
class Car(models.Model):
title = models.CharField(max_length=100)
renting_price = models.FloatField()
description = models.TextField()
mileage=models.CharField(max_length=2)
brand = models.CharField(max_length=50)
category = models.CharField(choices=CATEGORY_CHOICES, max_length=3)
car_image = models.ImageField(upload_to='carimg')
def __str__(self):
return str(self.id)
class My_Orders(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
car = models.ForeignKey(Car, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField(default=1)
def __str__(self):
return str(self.id)
STATUS_CHOICES = (
('Accepted','Accepted'),
('On The Way','On The Way'),
('Delivered','Delivered'),
('Cancel','Cancel'),
)
class OrderPlaced(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
car = models.ForeignKey(Car, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField(default=1)
status = models.CharField(max_length=50,choices=STATUS_CHOICES,default='Pending')
def __str__(self):
return str(self.id)
遷移文件 1
operations = [
migrations.AddField(
model_name='cart',
name='car',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='app.car'),
preserve_default=False,
),
migrations.AddField(
model_name='cart',
name='quantity',
field=models.PositiveIntegerField(default=1),
),
migrations.AddField(
model_name='cart',
name='renting_date',
field=models.DateTimeField(default=1),
preserve_default=False,
),
migrations.DeleteModel(
name='My_Order',
),
]
遷移文件 2
operations = [
migrations.AlterField(
model_name='cart',
name='renting_date',
field=models.DateField(),
),
]
遷移文件 3
operations = [
migrations.AddField(
model_name='orderplaced',
name='ordered_date',
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
preserve_default=False,
),
]
我的項目的 GitHub 鏈接https://github.com/Rushikesh53/car-renting.git
您似乎對模型中不再存在的字段有遷移錯誤。 解決此問題的最簡單方法是清除所有現有遷移並從頭開始重新創建一個新遷移。 您將丟失所有數據,但由於您的項目仍在開發中,因此應該可以使用該方法。
您可以使用以下命令執行此操作:
python manage.py migrate app_name zero
現在刪除所有遷移文件
最后,重新創建新的遷移並應用它。
python manage.py makemigrations
python manage.py migrate
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.