ValueError Django
السلام عليكم جميعا ، انا عندي سؤال سبق وتكرر نفس الخطأ ولا لقيت له حل ..
عندي في الmodel.py كلاسين وهم :
class Team(models.Model):
name = models.CharField(max_length=256 , unique=True)
details = models.TextField()
def __str__(self):
return self.name
class GameScore(models.Model):
def __str__(self):
return '{} {} - {} {}'.format(self.first_team.name,self.first_team_score,
self.second_team_score,self.second_team.name)
first_team = models.ForeignKey\
(Team,related_name='first_team',null=True,on_delete=models.PROTECT)
second_team = models.ForeignKey\
(Team,related_name='second_team',null=True,on_delete=models.PROTECT)
first_team_score = models.IntegerField(default=0)
second_team_score = models.IntegerField(default=0)
GameDate = models.DateTimeField(auto_now=True)
ولكن اذا جيت اضيف من صفحة الآدمن فريقين يتم اضافتهم ولكن عند فتح صفحة النتائج سواء من المتصفح او صفحة الآدمن تظهر رسالة خطأ :
Exception Type: ValueError
Exception Value: invalid literal for int() with base 10: 'RM'
هل احد سبق ومر بهالمشكلة ؟
الإجابة الصحيحة
الكود سليم
الحل بكل بساطة
اول شي قم بحذف قاعدة البيانات بالامر هذا
لو تستخدم لينكس الامر هذا
rm db.sqlite3
لو كنت تستخدم ويندوز كلك يمين على الملف وحذف
بعد حذف الملف طبق الامر التالي
python manage.py makemigrations
بعدين طبق الامر التالي
python manage.py migrate
بعد كذا قم بانشاء حساب للمدير جديد لاننا حذفنا قاعدة البيانات
بالامر التالي
python manage.py createsuperuser
اخر شي قم بتشغيل السيرفر
python manage.py runserver
بيروح الخطا لان الخطا من البيانات المضافه هي اللي فيها مشكله
ولا الكود سليم
الإجابات (4)
دالة int() يمكنها ان تستقبل رقم عشري float مثل 42.0 وتقوم بتحويله إلى عدد صحيح integer.
أو تستقبل نص String وتحوله إلى integer مثل '34'،
تحدث هذه المشكلة غالبا عندما تمرر لها نصا بداخله رقم عشري وليس عدد صحيح، مثل '45.0' فهو سيقوم بتحويل النص إلى عدد صحيح مباشرة، مع ان ما بداخل النص هو عدد عشري.
تأكد من المدخلات التي لديك.
المدخلات هي ٤ انواع ، اول نوعين بتكون من نوع تيم اللي فيه نيم و ديتيلز ، النوعين الاخرين من نوع int وتم التاكد ان المرسل int !
ومع ذلك لازال الخطأ موجود
ارفقت الملف هنا في حال اردت التأكد ومعاينة الكود انت او احد الاخوة
صراحةً مشكلة معقدة لم اجد لها حل ابداً ...
الكود سليم
الحل بكل بساطة
اول شي قم بحذف قاعدة البيانات بالامر هذا
لو تستخدم لينكس الامر هذا
rm db.sqlite3
لو كنت تستخدم ويندوز كلك يمين على الملف وحذف
بعد حذف الملف طبق الامر التالي
python manage.py makemigrations
بعدين طبق الامر التالي
python manage.py migrate
بعد كذا قم بانشاء حساب للمدير جديد لاننا حذفنا قاعدة البيانات
بالامر التالي
python manage.py createsuperuser
اخر شي قم بتشغيل السيرفر
python manage.py runserver
بيروح الخطا لان الخطا من البيانات المضافه هي اللي فيها مشكله
ولا الكود سليم
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !