2017-08-08 71 views
0

我在我的models.py中使用了django.core.validators,但是我不斷收到語法錯誤。添加驗證器到Django models.py中的字段

的一塊所涉及的代碼如下:

from django.db import models 
from django.core.validators import MaxValueValidator, MinValueValidator 

class StepStart(models.Model): 
    motor_type_choices = (             
    ('1'), 
    ('2'), 
    ('3'), 
    ('4'), 
    ('5'), 
    ('6'), 
    ) 
    temp_start = models.IntegerField(          
     default=30, 
     validators=[MaxValueValidator(90), MinValueValidator(10)] 
    ) 
    level_start = models.IntegerField(          
     default=30, 
     validators=[MaxValueValidator(150), MinValueValidator(10)] 
    ) 

該錯誤是在默認= 30的線語法錯誤。

我已經檢查了其他帖子在這裏和我使用的驗證方法似乎沒問題。

有人可以指出錯誤嗎?

這是錯誤消息我在命令提示符中得到:

line 65 
default=30, 
    ^
SyntaxError: invalid syntax 

感謝。

+0

你忘了逗號,我認爲? –

回答

0

需要一個逗號

temp_start = models.IntegerField(          
     default=30, 
     #  ^^^ 
     validators=[MaxValueValidator(90), MinValueValidator(10)] 
    ) 
    level_start = models.IntegerField(          
     default=30, 
     #  ^^^ 
     validators=[MaxValueValidator(150), MinValueValidator(10)] 
    ) 
+0

嗨,謝謝你的回答。但是,我添加了逗號,並且仍然在同一行上使用無效的語法。還有什麼我應該改變的? – Giulia

+0

請顯示完整的錯誤堆棧 –

+0

我剛編輯我的問題,以顯示我的cmd提示符上的確切消息。 – Giulia

0

改變這一點:

temp_start = models.IntegerField(          
     default=30 
     validators=[MaxValueValidator(90), MinValueValidator(10)] 
    ) 
    level_start = models.IntegerField(          
     default=30 
     validators=[MaxValueValidator(150), MinValueValidator(10)] 
    ) 

這樣:

temp_start = models.IntegerField(          
     default=30, 
     validators=[MaxValueValidator(90), MinValueValidator(10)] 
    ) 
    level_start = models.IntegerField(          
     default=30, 
     validators=[MaxValueValidator(150), MinValueValidator(10)] 
    ) 
+0

謝謝,我沒有按照建議添加逗號,但是我仍然在同一行上得到無效的語法錯誤。任何其他建議? – Giulia

+0

@giulia這是你在插入逗號之前得到的錯誤信息嗎?只是好奇。 –

+0

嘗試從第一個字段中一起刪除默認值,看看是否仍然存在錯誤。如果是這樣,那麼從兩個字段中刪除默認值,看看會發生什麼。這將幫助您找出問題的根源。 –

相關問題