Skip to main content
 首页 » 编程设计

python之Django 值错误 : invalid literal for int() with base 10:

2024年08月15日36artech

我正在尝试查询我在 django 中的 Preferences 表,但每当我尝试查找用户条目时,它只会给我这个错误。

ValueError: invalid literal for int() with base 10: 'jason'

我正在做的查找是这样的。

Preferences.objects.filter(customer='jason')

虽然很奇怪,但我可以做到这一点。

Preferences.objects.all()

然后我检索了我想要的一个对象的查询集。 当我问

Preferences.objects.all()[0].customer

在这里我确实检索了字符串“Jason”。你能解释一下我的查询或代码中出了什么问题吗?任何帮助将不胜感激,如果需要,我可以提供代码的其他部分!

#models.py  
class Preferences(models.Model): 
customer = models.OneToOneField(User, on_delete=models.CASCADE) 
ebay_token = models.TextField(max_length=1024) 
app_id = models.CharField(max_length=128, default='asdf', editable=False) 
dev_id = models.CharField(max_length=128, default='1234', editable=False) 
cert_id = models.CharField(max_length=128, default='1234', editable=False) 
 
#this might need to be correct. I'm not sure if the user should have this much control over markup 
markup = models.FloatField(max_length=3, validators=[MaxValueValidator(50, message='Can\'t be this high!'), MinValueValidator(1, message='Can\'t be this low!')]) 
seller_location = models.CharField(max_length=256) 
#the ebay site number might need editing 
ebay_site_number = models.IntegerField() 
quantity = models.IntegerField(validators=[MinValueValidator(1, message='Must be atleast 1'), MaxValueValidator(10, message='Must be equal to or smaller than 10')]) 
 
#this will def need fixing here 
fullfillment_policy = models.CharField(max_length=64) 
payment_policy = models.CharField(max_length=64) 
return_policy = models.CharField(max_length=64) 
 
#default weight 
default_weight = models.IntegerField(help_text='Default weight for item in pounds', default=15, validators=[MinValueValidator(1, message='Must be atleast 1 pound'), MaxValueValidator(500, message='Must be equal to or less than 500')]) 
paypalEmailAddress = models.CharField(max_length=128, default='user@gmail.com') 
 
 
def __str__(self): 
    return "{} | Preferences".format(self.customer.username) 

请您参考如下方法:

models.OneToOneField 需要一个用于 pk 的 id 或一个 User 对象。

尝试

Preferences.objects.filter(customer__name='Jason') 

或将 __name 部分更改为您的 User 模型中的任何字段。