如何解决此问题:从CSV文件导入数据后,int()的无效文字为10:'B-A-BRS01'

2024-03-28 16:05:01 发布

您现在位置:Python中文网/ 问答频道 /正文

简而言之,我有一个名为drilling的模型,它包含来自其他4个模型表的4个外键。当我使用DB Browser for SQLite将数据从csv文件导入到我的drilling表时,导入成功。当我现在转到drilling.html页面时,我无法加载它。这是错误:

ValueError at /project/
  invalid literal for int() with base 10: 'B-A-BRS01'

他们把我重定向到错误发生的地方:

104 <td>{{ drilling.project_name }}</td> (that is in the drilling.html line 104)

这是我drilling模型的一部分:

project_name = models.ForeignKey(Project)
drill_date = models.DateField(default= '2000-01-01')
shift = models.CharField(max_length = 1, choices = DRILLING_SHIFT)
holes_drilled = models.IntegerField(blank = False, null = True)
meters_drilled = models.DecimalField(blank = False, decimal_places=2, max_digits=10, null = True)
avgdepth_drilled = models.DecimalField(blank = True, decimal_places=2, max_digits=10, null = True)
targetmeters_drilled = models.CharField(max_length = 1, choices = TARGET_MET)
comment = models.CharField(max_length = 220, blank = True, null = True)
geologist = models.ForeignKey(Personel, related_name='Geologist')
driller = models.ForeignKey(Personel, related_name='Driller')
auger = models.ForeignKey(Auger)
client = models.ForeignKey(Client)
vehicle = models.ForeignKey(Vehicle)

人员模型部分(钻井外键领域之一):

class Personel(models.Model):
personel_full_name = models.CharField(max_length = 220, blank = False, null = False)
personel_designation = models.CharField(max_length = 200, choices = DESIGNATION, default=DESIGNATION[0][0])
personel_email = models.CharField(max_length = 220, blank = True, null = True)
personel_contact = models.CharField(max_length = 220, blank = True, null = True)
timestamp = models.DateTimeField(auto_now_add = True, auto_now = False)
updated = models.DateTimeField(auto_now_add = False, auto_now = True)

def __str__(self):
    return self.personel_full_name
    # +" ("+self.personel_designation+")"
def __unicode__(self):
    return self.id, self.personel_full_name
    # +" : "+self.personel_designation

部分钻孔.html地址:

<tbody>
            {% for drilling in drillings %}
                <tr>
                    <td><a href="">{{ drilling.project_name}}</a></td>
                    <td><a href="">{{ drilling.drill_date}}</a></td>
                    <td><a href="">{{ drilling.shift}}</a></td>
                    <td><a href="">{{ drilling.holes_drilled}}</a></td>
                    <td><a href="">{{ drilling.meters_drilled}}</a></td>
                    <td><a href="">{{ drilling.avgdepth_drilled}}</a></td>
                    <td><a href="">{{ drilling.targetmeters_drilled}}</a></td>
                    <td><a href="">{{ drilling.comment}}</a></td>
                    <td><a href="">{{ drilling.geologist}}</a></td>
                    <td><a href="">{{ drilling.driller}}</a></td>
                    <td><a href="">{{ drilling.auger}}</a></td>
                    <td><a href="">{{ drilling.client}}</a></td>
                    <td><a href="">{{ drilling.vehicle}}</a></td>

我还想补充或提醒一下,在Db browser中,当外部heys字段存储在integers字段中,并且它们的名称也通过添加_id进行更改时:例如,如果我将外键的字段命名为project_name,Db将使其成为project_name_id,并存储该记录的id,而不是模型中指定的值。你知道吗

任何帮助都会欣然接受。谢谢您!你知道吗


Tags: nameselfprojecttruemodelsnulllengthmax